1.創建容器併進行持久化處理 #拉取鏡像 docker pull mysql:8.0.20 #啟動鏡像,用於拷貝配置文件到宿主機 docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20 #查 ...
1.創建容器併進行持久化處理
#拉取鏡像
docker pull mysql:8.0.20
#啟動鏡像,用於拷貝配置文件到宿主機
docker run -p 3306:3306 --name mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.20
#查看是否啟動成功
docker ps -a
#新建掛載目錄並拷貝配置文件
mkdir -p /mysqldata/
docker cp mysql:/etc/mysql /mysqldata/
#刪除原有鏡像
docker stop mysql
docker rm -f mysql
#啟動mysql ,掛載配置文件,數據持久化到宿主主機
docker run \
-p 13306:3306 \
--name mysql \
--privileged=true \
--restart unless-stopped \
-v /home/mysqldata/mysql:/etc/mysql \
-v /home/mysqldata/mysql/logs:/logs \
-v /home/mysqldata/mysql/data:/var/lib/mysql \
-v /etc/localtime:/etc/localtime \
-e MYSQL_ROOT_PASSWORD=cqrecadmin \
-d mysql:8.0.20
#檢查是否運行成功
docker ps -a
命令解釋:
-p 埠映射
--privileged=true 掛載文件許可權設置
--restart unless-stopped 設置 開機後自動重啟容器
-v /mnt/sda1/mysql8.0.20/mysql:/etc/mysql 掛載配置文件
-v /mnt/sda1/mysql8.0.20/logs:/logs \ 掛載日誌
-v /mnt/sda1/mysql8.0.20/data:/var/lib/mysql \ 掛載數據文件 持久化到主機
-v /etc/localtime:/etc/localtime 容器時間與宿主機同步
-e MYSQL_ROOT_PASSWORD=cquisse 設置密碼
-d mysql:8.0.20 後臺啟動,mysql
2.配置遠程連接並嘗試
#進入容器
docker exec -it mysql bash
#登錄mysql,輸入運行容器時配置的密碼
mysql -u root -p
#執行sql
CREATE USER 'user_galen'@'%' IDENTIFIED WITH mysql_native_password BY 'Galen*10';
GRANT ALL PRIVILEGES ON *.* TO 'user_galen'@'%';
退出到伺服器,開放對應埠
firewall-cmd --add-port=13306/tcp --permanent
firewall-cmd --reload
測試連接