Docker 安裝 MySQL 並實現遠端連線
阿新 • • 發佈:2020-08-28
拉取映象
```
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 PRIVILE