docker 安装报错 ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: YES)解决方法

以下操作针对mysql8.0.11版本:

第一步:安装mysql服务时

docker run -d -v /data/mysql/data:/var/lib/mysql -v /data/mysql/conf:/etc/mysql/conf.d --name mysql -e MYSQL_ROOT_PASSWORD=mysql123 -p 3306:3306 -d mysql:latest

需要将 -v /data/mysql/conf:/etc/mysql/conf.d 这句话加上。这样的话mysql安装目录/etc/mysql/conf.d 会加载到docker 容器/data/mysql/conf目录下。

进入docker容器,在/data/mysql/conf目录下面新建my.cnf文件,名字可以随便起,但必须是.cnf结尾的文件。

vi my.cnf文件,加入下面的内容。

[mysqld]
skip-grant-tables

重启mysql服务。即可以mysql -u用户名 -p  登录进去。


第二步:更新root密码
select user,authentication_string from user;
update user set authentication_string=''  where user='root';

第三步:注释掉my.cnf 文件中的 skip-grant-tables
alter user'root'@'%' IDENTIFIED BY 'Mysql@123'; 
alter user'root'@'localhost' IDENTIFIED BY 'Mysql@123'; 

flush privileges;

发现用mysql客户端SQLyog连接,报 连不上。

MYSQL 8.0内新增加mysql_native_password函数,通过更改这个函数密码来进行远程连接。更改ROOT用户的native_password密码

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY'Mysql@123';

执行完成。既可以连接了。

查看变量值:

SHOW VARIABLES LIKE 'lower%'; 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值