1. 程式人生 > >docker 安裝報錯 ERROR 1045 (28000): Access denied for user 'mysql'@'localhost' (using password: YES)解決方法

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 '

[email protected]'; 
alter user'root'@'localhost' IDENTIFIED BY '[email protected]'; 

flush privileges;

發現用mysql客戶端SQLyog連線,報 連不上。

MYSQL 8.0內新增加mysql_native_password函式,通過更改這個函式密碼來進行遠端連線。更改ROOT使用者的native_password密碼

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY'

[email protected]';

執行完成。既可以連線了。

檢視變數值:

SHOW VARIABLES LIKE 'lower%';