官方详细说明 地址:https://hub.docker.com/_/mysql?tab=description

  • 安装docker
  • 使用mysql 5.7 docker镜像
  • my.cnf文件放置在宿主机/etc/mysql/下
  • 数据存储在宿主机 /data/mysql下
  • 端口对外端口使用50000

安装docker

yum remove docker-common -y
cd /etc/yum.repos.d/
wget https://download.docker.com/linux/centos/docker-ce.repo
yum -y install docker-ce
systemctl enable docker
systemctl start docker

如果/data/mysql下已经存在之前的数据文件,那么MYSQL_ROOT_PASSWORD=的密码就失去作用,除非清空/data/mysql下的文件

docker pull mysql:5.7
mkdir /etc/mysql/
cat > /etc/mysql/my.cnf <<EOF
[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的名字

相关文章:

  • 2021-11-06
  • 2022-12-23
  • 2022-12-23
  • 2021-08-15
  • 2021-07-09
  • 2021-05-22
  • 2021-10-13
  • 2022-12-23
猜你喜欢
  • 2021-09-30
  • 2021-08-17
  • 2021-09-13
  • 2021-07-26
  • 2021-04-25
  • 2021-09-01
  • 2021-10-16
相关资源
相似解决方案