docker 安裝mysql 8過程總結及問題

#默認拉取最新版mysql

docker pull mysql

#啓動mysql

docker run -itd --name mysql-test -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

參數解釋:

  • –name:容器名,此處命名爲mysql
  • -e:配置信息,此處配置mysql的root用戶的登陸密碼
  • -p:端口映射,此處映射 主機3308端口 到 容器的3306端口

 docker container ls 可以看到容器ID,容器的源鏡像,啓動命令,創建時間,狀態,端口映射信息,容器名字

查看窗口狀態

 

使用navicat工具連接時,提示如下信息:Connnection Failed: Client does not support authentication protocol requested by server; consider upgrading MySQL client

由於docker 中mysql的版本是8,經分析是navicat版本的問題,出現連接失敗的原因

mysql8之前的版本中加密規則是mysql_native_password

mysql8之後加密規則是caching_sha2_password

1.升級navicat

2.修改數據庫加密規則

看個人需求,下面主要講解如何修改數據庫加密規則,把用戶密碼登錄的加密規則還原成mysql_native_password加密方式

mysql>  alter user 'root'@'%' identified by 'password' password expire never;

Query OK, 0 rows affected (0.02 sec)

 

mysql>  alter user 'root'@'%' identified with mysql_native_password by '123456'; 

Query OK, 0 rows affected (0.01 sec)

然後在查詢:select user,host,plugin from user where user='root';

再次使用navicat進行連接即可,如果遇到這樣問題,是由於root用戶權限問題

不建議使用root直接登錄 ,可能創建其它用戶來訪問

mysql創建用戶:

create user test123456 identified by 'Test%123456';

授權

grant all on *.* to 'test123456'@'%';

alter user to 'test123456'@'%' identified by 'Test%123456';

flush privileges;

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章