Docker 安裝 MySQL 並實現遠程連接

拉取鏡像

docker pull mysql

查看拉取完成的鏡像

docker images

通過鏡像創建並啟動一個MySQL容器

docker run --name mysql_dev -e MYSQL_ROOT_PASSWORD=123456 -p 3333:3306 -d mysql

–name:給新創建的容器命名,此處命名為 mysql_dev
-e:配置信息,此處配置mysql的root用戶的登陸密碼
-p:端口映射,此處映射主機3333端口到容器mysql_dev的3306端口
-d:成功啟動容器後輸出容器的完整ID\最後一個mysql指的是mysql鏡像名字

此時,用navicat for mysql連接mysql發現報錯:
Client does not support authentication protocol requested by server。。。
解決再最下面 ^ _ ^

查看安裝的所有容器

docker ps -a

查看啟動中的容器

docker ps

暫停/啟動容器中的服務

docker stop mysql_dev
docker start mysql_dev

進入容器

docker exec -it mysql_dev bash

查看容器中服務的IP

docker exec -it mysql_dev cat /etc/hosts

新版 MySQL 授權用戶時報錯 near ‘IDENTIFIED BY ‘密碼’ with grant option’ at line 1

1 問題:
當使用 grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' identified by '密碼'; 時會出現"......near 'identified by '密碼'' at line 1"這個錯誤
2 原因:
因為新版的的mysql版本已經將創建賬戶和賦予權限的方式分開了
3 解決辦法:
創建賬戶:create user '用戶名'@'訪問主機' identified by '密碼';
賦予權限:grant 權限列表 on 數據庫 to '用戶名'@'訪問主機' ;(修改權限時在後面加with grant option)
4 具體操作:
# 添加用戶
CREATE USER 'mysql_dev' IDENTIFIED BY '123456';
# 賦予權限
GRANT ALL PRIVILEGES ON *.* TO 'mysql_dev'@'%';
# 修改加密規則 
ALTER USER 'mysql_dev'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
# 更新一下用戶的密碼
ALTER USER 'mysql_dev'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
# 更新配置信息
FLUSH PRIVILEGES;
Tags: