ubuntu系统mysql5.7忘记/设置root的坑

关于修改root的密码有很多笔记了,但是在mysql5.7下面无效,后来找到同样是5.7的笔记,才真正修改好。现在记录下来。

 

第一步,修改mysql配置文件让Mysql跳过认证

我的mysql是通过apt install mysql-server 安装的

配置文件目录/etc/mysql/mysql.conf.d/mysql.cnf

编辑mysql.cnf,找到[mysqld] (带英文的中括号),在下面添加一行

skip-grant-tables

保存退出

提醒】默认的/etc/mysql/mysql.cnf是一个导入文件,一般不建议直接修改,如果你编辑这个文件也可以,需要先输入[mysqld],再换行输入skip-grant-tables

备用方法:使用debian的账号登录,可以不修改mysql.cnf登录

sudo vim /etc/mysql/debian.cnf
# 找到password一行,复制密码

  

第二步,重启mysql,然后免密登录

sudo service mysql restart

然后msyql -u root -p 回车,再回车,就进入mysql了

第三步,修改root密码

mysql> use mysql;
mysql> update user set authentication_string=PASSWORD("你的密码") where user=root;
mysql> update user set plugin="mysql_native_password"; # 不用修改, 直接执行  重点
mysql> flush privileges;
mysql> quit;

之前的教程,都知道更新了authentication_string这个表,没有第3行的操作,所以,退出重启mysql,还是无法用root登录

这应该是5.7更新安全规则的原因,一定要执行第3条和第4条哦

第四步,重新修改mysql.cnf 

在skip-grant-tables前面,加一个#号,注释掉,如果是生产环境,一定要修改哦,不然很危险哈

再重启mysql服务sudo service mysql restart

再 mysql -u root -p   #回车

输入密码,登录Mysql 

 

ubuntu系统mysql5.7忘记/设置root的坑

上一篇:SQLAlchemy模块


下一篇:分库分表实践-Sharding-JDBC