1. 程式人生 > >docker部署mysql及Navicat遠端登入

docker部署mysql及Navicat遠端登入

1.1拉取MySQL映象

1

docker pull mysql 

檢視映象

1

docker images

1.2建立MySQL容器

1

docker run -di --name pinyougou_mysql -p 33306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

-p 代表埠對映,格式為  宿主機對映埠:容器執行埠

-e 代表新增環境變數  MYSQL_ROOT_PASSWORD是root使用者的登陸密碼

1.3進入MySQL容器,登陸MySQL

1

docker exec -it pinyougou_mysql /bin/bash

登陸mysql

1

mysql -u root -p

然後就可以遠端登陸MySQL

Navicat 遠端連線docker容器中的mysql 報錯1251 - Client does not support authentication protocol 解決辦法

1,容器中登入mysql,檢視mysql的版本

mysql> status;
--------------

mysql  Ver 8.0.11 for Linux on x86_64 (MySQL Community Server - GPL)

2,進行授權遠端連線(注意mysql 8.0跟之前的授權方式不同)

授權

1

GRANT ALL ON *.* TO 'root'@'%';

重新整理許可權

1

flush privileges

 此時,還不能遠端訪問,因為Navicat只支援舊版本的加密,需要更改mysql的加密規則

3,更改加密規則

1

ALTER USER 

'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;

4,更新root使用者密碼

1

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

重新整理許可權

1

flush privileges;

OK,設定完成,再次使用 Navicat 連線資料庫