使用mysql docker官方鏡像部署mysql5.7


官方詳細說明 地址:https://hub.docker.com/_/mysql?tab=description

  • 使用mysql 5.7 docker鏡像
  • my.cnf文件放置在宿主機/etc/mysql/下
  • 數據存儲在宿主機 /data/mysql下
  • 端口對外端口使用50000

 *注意事項

如果/data/mysql下已經存在之前的數據文件,那么MYSQL_ROOT_PASSWORD=的密碼就失去作用,除非清空/data/mysql下的文件

#拉取鏡像
docker pull mysql:5.7
#mkdir /etc/mysql/
cat > /etc/mysql/my.cnf <<EOF    //或者cat << EOF > /etc/mysql/my.cnf
[mysqld]
#skip-name-resolve
port = 3306
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
skip-character-set-client-handshake=1
default-storage-engine=INNODB
max_allowed_packet = 500M
explicit_defaults_for_timestamp=1
long_query_time = 10
EOF
mkdir -p /data/mysql

docker run --name mysql5.7 -v /etc/mysql:/etc/mysql/conf.d -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d --restart=always -p 50000:3306 mysql:5.7
#mysql5.7是指新mysql docker的名稱
#my-secret-pw是指mysql的root密碼
#mysql:5.7是指docker鏡像的名稱
#端口映射-p 50000:3306

 

 

 

 

docker ps -a |grep mysql

 

進入已啟動的mysql docker

docker exec -it mysql5.7 bash

查看mysql日志
docker logs mysql5.7

 

通過docker啟動mysql客戶端

#mysql客戶端
docker run -it --rm mysql:5.7 mysql -h8.210.199.136 -uroot -P50000 -pmy-secret-pw
#8.210.199.136 為主機名
#P50000端口
#my-secret-pw密碼

 

 備份數據庫

mkdir -p /data/backup/
docker exec mysql5.7 sh -c 'exec mysqldump --all-databases -uroot -p"$MYSQL_ROOT_PASSWORD"' > /data/backup/all-databases.sql

#mysql5.7 是docker的名字

 

恢復數據庫

docker exec -i mysql5.7 sh -c 'exec mysql -uroot -p"$MYSQL_ROOT_PASSWORD"' < /data/backup/all-databases.sql

#mysql5.7 是docker的名字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM