Docker安裝MySQL8
阿新 • • 發佈:2022-01-14
Docker安裝MySQL8.0
原文連結: https://www.cnblogs.com/ybyn/p/13698058.html
1、環境
- CentOS 7.5
- Docker 20.10.5
- MySQL 8.0.27
2、安裝
1、拉取映象
預設拉取最新版本的映象
docker pull mysql
如果要指定版本,使用下面的命令
docker pull mysql:8.0.27
2、建立資料目錄和配置檔案
在宿主機建立放置mysql的配置檔案的目錄和資料目錄,並且進行授權
mkdir -p /usr/mysql/conf /usr/mysql/data
chmod -R 755 /usr/mysql/
3、建立配置檔案
在上面建立的配置檔案目錄/usr/mysql/conf下建立MySQL的配置檔案my.cnf
vim /usr/mysql/conf/my.cnf
新增以下內容到上述建立的配置檔案中
[client] #socket = /usr/mysql/mysqld.sock default-character-set = utf8mb4 [mysqld] #pid-file = /var/run/mysqld/mysqld.pid #socket = /var/run/mysqld/mysqld.sock #datadir = /var/lib/mysql #socket = /usr/mysql/mysqld.sock #pid-file = /usr/mysql/mysqld.pid datadir = /usr/mysql/data character_set_server = utf8mb4 collation_server = utf8mb4_bin secure-file-priv= NULL # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 # Custom config should go here !includedir /etc/mysql/conf.d/
4、啟動建立容器
docker run -d --name mysql8 -v /usr/mysql/conf/my.cnf:/etc/mysql/my.cnf -v /usr/mysql/data:/var/lib/mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=密碼 mysql:8.0.27
引數解釋:
-v : 掛載宿主機目錄和 docker容器中的目錄,前面是宿主機目錄,後面是容器內部目錄-d : 後臺執行容器
-p 對映 宿主機埠號:容器埠號
-e 環境引數,MYSQL_ROOT_PASSWORD設定root使用者的密碼
執行上述命令後,執行查詢容器的命令就可以看到建立的mysql容器
docker ps -a
3、問題
上述雖然安裝好了mysql,但是使用遠端的Navicat連線時提示錯誤,不能正確連線mysql,此時需要修改按照下面說的步驟修改一下mysql的密碼模式以及主機等內容才可以。
1、修改mysql密碼以及可訪問主機
- 進入容器內部
docker exec -it mysql /bin/bash
- 連線mysql
mysql -uroot -p
- 使用mysql庫
mysql> use mysql
- 修改訪問主機以及密碼等,設定為所有主機可訪問
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新密碼';
注意:
mysql_native_password,mysql8.x版本必須使用這種模式,否則navicate無法正確連線
- 重新整理
mysql> flush privileges
經過以上步驟,再次遠端使用Navicat連線資料庫時就可以正常連線了。