【用root登入MySQL 显示 Access denied for user ‘root’@‘localhost’ (using password: **)】

docker安装mysql

出现这个报错语句的一般原因是输入了错误的密码,也有可能是是root帐户默认不开放远程访问权限。
如果你时刚装上mysql(在Linux上) 使用下面的命令:

grep 'temporary password' /var/log/mysqld.log

查看你的临时密码,然后进mysql后自己再去用下面 第4 步的命令去修改密码。

使用无密码认证的办法去修改密码

1.进入 编辑vim /etc/my.cnf文件

vim /etc/my.cnf

2.在[mysqld]下面添加一条命令:skip-grant-tables 不用验证密码进入MySQL

[mysqld]
skip-grant-tables

3.重启MySQL

docker restart mysql

进入mysql

mysql -u root -p

直接按回车
4. 将root 密码设置为空 authentication_string是MySQL8.0 的usr里的密码字段

use mysql; (使用mysql数据表)
update user set authentication_string='' where user='root';(将密码置为空)
exit (退出mysql)

5.编辑 vim /etc/my.cnf文件,将skip-grant-tables注释掉

 vim /etc/my.cnf 

6.重新开启MySQL

docker restart mysql

7.进入mysql

mysql -u root -p
(此处会显示输入密码,直接回车就好了)

修改root 为可以远程登陆 同时重新设置密码

ALTER USER 'root'@'%' IDENTIFIED BY 'password';(password是你要更改后的密码)

这样就可以在所有电脑远程登入了。

参考文章:docker_mysql

程序员张同学

你可能感兴趣的:(linux学习,MySQL,docker,mysql,数据库,docker,linux)