MySQL5.7.22-Ubuntu18.04.1 -root密码修改-官方文档亲测有效

新版的MySQL5.7.22在安装的时候没有任何关于密码的提示,在安装完毕后直接输入mysql即可进入,这一点对于系统运维来说还是有一定问题的,因此尝试修改一下,以mysql官方文档点击打开链接为主进行借鉴,以下是操作步骤:

第一步:停止mysql服务

shell> kill `cat /mysql-data-directory/host_name.pid`

其中/mysql-data-directory/host_name.pid 是指mysqld.pid的实际路径,可能是/var/lib/mysql/,/var/run/mysql/等,我电脑中是/run/mysqld/mysqld.pid:


第二步:在某路径下(例如/home/me/mysql-init)创建一个文件,MyNewPass替换成你的密码,写入并保存:(注意在5.7.6版本以后命令的方式有了变化,不再使用PASSWORD字眼)

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

第三步:赋予文件执行权限(注意官方文档中未提及):

shell> chown mysql:mysql /home/me/mysql-init

第四步:利用文件启动mysql:

shell> mysqld --init-file=/home/me/mysql-init &

第五步:重新启动mysql服务:

shell> systemctl restart mysqld.service

实验下,成功。再删除mysql-init文件。


踩过的坑:

参考了博客园一篇文章《ubuntu 16.04系统下解决MySQL 5.7版本的root用户重置密码问题》点击打开链接,以及百度经验《MySql 5.7重置root密码》点击打开链接,理论上是可行的,但是经试验,mysql服务无法在最后一步成功启动,报错。

但是文中提到的方法部分是可取的,比如提示mysqld_safe Directory ‘/var/run/mysqld’ for UNIX socket file don’t exists 的解决方法是:

mkdir -p /var/run/mysqld
chown mysql:mysql /var/run/mysqld

同时官方文档也给出了如果文本修改方式不行,可以尝试直接修改:

UPDATE mysql.user SET authentication_string = PASSWORD('MyNewPass')
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;

猜你喜欢

转载自blog.csdn.net/handsomehuo/article/details/80235740
今日推荐