一、Docker啟動MySQL容器
在使用Docker啟動MySQL之前,我們需要先檢查本地是否已經有MySQL鏡像,如果沒有,需先下載。我們可以通過以下命令來檢查本地是否已有MySQL鏡像:
docker images | grep mysql
如果本地沒有MySQL鏡像,我們可以再終端中通過以下命令下載MySQL鏡像:
docker pull mysql
下載完成後,我們可以通過以下命令啟動MySQL容器:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
這裡解釋一下各個參數的意義:
--name mysql
指定容器名稱為mysql,可以根據實際需要進行修改;-p 3306:3306
端口映射,將容器中MySQL的3306端口映射到主機的3306端口;-e MYSQL_ROOT_PASSWORD=123456
設置MySQL的root用戶的密碼為123456;-d mysql
後台運行mysql鏡像。
啟動後,我們可以通過以下命令檢查容器是否已經啟動:
docker ps -a | grep mysql
如果返回結果中能看到mysql容器,說明已經成功啟動。
二、Docker訪問不到MySQL
在使用Docker啟動MySQL容器時,可能會遇到Docker容器無法訪問MySQL的情況。這時我們需要檢查以下兩方面:
- 是否設置了正確的端口映射;
- MySQL是否啟動。
如果端口映射正確,可以通過以下命令檢查MySQL是否正常啟動:
docker logs mysql | grep password
如果返回類似於以下結果,則說明MySQL已正常啟動:
2021-07-21T02:27:06.427867Z 1 [System] [MY-011011] [Server] mysqld: ready for connections. Version: '8.0.11' socket: '/tmp/mysql.sock' port: 3306 MySQL Community Server - GPL.
2021-07-21T02:27:06.460330Z 1 [System] [MY-013172] [Server] Received SHUTDOWN from user root. Shutting down mysqld (Version: 8.0.11).
2021-07-21T02:27:09.288095Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.11) MySQL Community Server - GPL.
三、Docker啟動MySQL 8.0
如果需要啟動MySQL 8.0版本,可以通過以下命令啟動:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0
四、Docker啟動MySQL立馬停止
有時候我們啟動MySQL容器後會立即停止,這很有可能是因為MySQL配置文件沒有正確設置。
我們可以通過以下命令來啟動MySQL,並指定一個本地的MySQL配置文件:
docker run --name mysql -p 3306:3306 -v /your-path/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=123456 -d mysql
通過該命令,我們將本地的一個my.cnf文件掛載到了容器的/etc/mysql/my.cnf路徑下,這樣就可以保證MySQL的配置文件正確設置。
五、Docker啟動MySQL鏡像命令
以下是常用的啟動MySQL鏡像命令:
# 拉取MySQL鏡像
docker pull mysql
# 啟動MySQL 5.7
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
# 啟動MySQL 8.0
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
# 啟動MySQL 5.7 並指定數據存放路徑
docker run -d --name mysql \
-v /your-path/mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:5.7
# 啟動MySQL 8.0 並指定數據存放路徑
docker run -d --name mysql \
-v /your-path/mysql/data:/var/lib/mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
mysql:8.0
六、Docker啟動MySQL容器時添加地址
有時候我們的MySQL需要綁定到指定的IP地址上,這時我們可以通過以下命令啟動MySQL容器:
docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql --bind-address=0.0.0.0
這裡通過--bind-address=0.0.0.0
參數綁定MySQL的IP地址為0.0.0.0,表示MySQL綁定所有的IP地址。
七、Docker啟動MySQL失敗
如果啟動MySQL失敗,我們可以先刪除已有的容器,然後再重新啟動,可以通過以下命令刪除容器:
docker rm -f mysql
然後再按照前面的步驟重新啟動即可。
八、Docker啟動MySQL指定配置文件
有時候我們需要在啟動MySQL容器時指定一個配置文件,這時我們可以通過以下命令啟動MySQL容器:
docker run --name mysql \
-v /your-path/my.cnf:/etc/mysql/my.cnf \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql --defaults-file=/etc/mysql/my.cnf
這裡通過-v /your-path/my.cnf:/etc/mysql/my.cnf
參數指定了MySQL的配置文件路徑,通過--defaults-file=/etc/mysql/my.cnf
參數指定配置文件。
九、Docker啟動MySQL容器沒有權限
有時候我們在啟動MySQL容器時可能會出現權限問題,這時我們可以通過以下命令啟動容器,並將MySQL數據目錄和/config目錄權限都設置為777:
docker run --name mysql \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /your-path/data:/var/lib/mysql \
-v /your-path/config/mysql:/etc/mysql/conf.d \
-v /your-path/logs/mysql:/logs/mysql \
-d mysql
# 設置數據目錄和/config目錄權限為777
docker exec mysql chmod 777 -R /var/lib/mysql
docker exec mysql chmod 777 -R /etc/mysql/conf.d
這裡我們通過docker exec
命令進入到容器中,然後通過chmod
命令設置目錄權限。
總結
本文從多個方面詳細闡述了Docker啟動MySQL的過程,包括:啟動MySQL容器、訪問不到MySQL、啟動MySQL 8.0、啟動MySQL立馬停止、指定MySQL配置文件、指定MySQL地址和啟動MySQL失敗等問題的解決方案。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/180042.html