一般安装后在日志里面可以看到mysql 的root 的初始密码,但是今天装了一台机器,日志中没有提及,只能手动修改密码。
- 关闭mysql服务 service mysqld stop
- 修改mysql的配置文件,使myslq登陆时跳过密码项,修改/etc/my.cnf 的 [mysqld] 部分,添加 skip-grant-tables 保存退出,就是说,登陆时跳过权限认证。
- 启动mysql服务,service mysqld start
- 使用 mysql -uroot -p 进入mysql中,此时不需要输入密码就可以登陆。
mysql> USE mysql ;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> UPDATE user SET authentication_string = password( '123456' ) WHERE User = 'root' ;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 1
以前在user 表中,密码字段是password,但是在mysql5.7中存储密码的字段是 authentication_string - 退出,将之前更改的配置文件中的 skip-grant-tables 删除,重启mysql,再次进入mysql,使用 mysql -uroot -p123456,这样就可以使用啦
如果出现下列错误
mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
执行 alter user 'root'@'localhost' identified by '123456';
再次对root 的密码进行更新,就OK了。