docker安装mysql
- 拉取镜像
docker pull mysql
- 创建本地文件与mysql容器对接
mkdir /root/opt/mysql/first_mysql
cd /root/opt/mysql/first_mysql
mkdir data
mkdir mysql
- 先开启一个简单的mysql容器
docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name test_mysql mysql
- 进入这个容器
docker exec -it 容器id /bin/bash
- 输入mysql密码
mysql -uroot -p
- 查看容器内关于mysql的信息
ls /var/lib/mysql/
ls /etc/mysql/
7,退出到centos
exit
exit
8,复制映射文件
docker cp 容器名或id:/etc/mysql/ /root/opt/mysql/first_mysql/mysql
docker cp 容器名或id:/var/lib/mysql/ /root/opt/mysql/first_mysql/data
9,停止刚才的容器id
docker stop 容器id
10,删除刚才的容器
docker rm 容器id
11,创建mysql容器的完整写法
docker run -d --restart=always -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -v /root/opt/mysql/first_mysql/mysql:/etc/mysql/ -v /root/opt/mysql/first_mysql/data:/var/lib/mysql --name first_mysql mysql
12,永久开启端口3306
firewall-cmd --zone=public --add-port=3306/tcp --permanent
13,备份mysql数据库为sql文件
导出全部数据和结构
docker exec 容器id sh -c 'exec mysqldump -uroot -p "$MYSQL_ROOT_PASSWORD" --all-databases' > /root/all.sql
导入指定数据库的结构和数据
docker exec 容器id sh -c 'exec mysqldump -uroot -p "$MYSQL_ROOT_PASSWORD" --all-databases 数据库名' > /root/数据库名.sql
导入指定数据库的结构
docker exec 容器id sh -c 'exec mysqldump --no-data -uroot -p "$MYSQL_ROOT_PASSWORD" --all-databases 数据库名' > /root/数据库名.sql
14,执行sql文件到mysql中
docker exec -i 容器id sh -c 'exec mysql -uroot -p "$MYSQL_ROOT_PASSWORD"' < /root/all.sql