Docker安装Mysql5.7
拉取镜像
1
docker pull mysql:5.7
查看镜像
1
docker images
创建映射目录
1
mkdir -p /docker/mysql/logs /docker/mysql/data /docker/mysql/conf /docker/mysql/backup
创建配置文件
- 进入目录
1
cd /docker/mysql/conf
- 新建配置文件
1
vi mysql.cnf
- 添加以下内容
1
2
3
4
5
6
7
8
9
10
11
12[client]
default-character-set = utf8
[mysql]
default-character-set = utf8
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8
collation-server = utf8_general_ci
default-storage-engine=INNODB
lower_case_table_names=1
default-time_zone = '+8:00'
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
- 启动
创建启动脚本
1
vi /docker/mysql/docker.sh
添加以下内容(Password为管理员密码)
1
2
3
4
5
6
7
8
9
10
11
docker run \
--name mysql \
-p 3306:3306 \
--privileged=true \
--restart always \
-v /docker/mysql/conf/mysql.cnf:/etc/mysql/my.cnf \
-v /docker/mysql/logs:/logs \
-v /docker/mysql/mysql:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=Password \
-d mysql:5.7脚本授权
1
sudo chmod -R 777 /docker/mysql/docker.sh
去掉多余的回车符号
1
sed 's/\r//' -i /docker/mysql/docker.sh
运行脚本
1
./docker.sh
数据库工具连接
- 容器相关操作
查看容器
1
docker ps
重启容器
1
docker restart 容器id
- 定时备份
创建备份脚本
1
vi /docker/mysql/backup.sh
添加以下内容
1
2
3
4
5
echo "时间`date +%Y%m%d-%H:%M:%S`:mysql备份开始"
docker exec mysql mysqldump -P 3306 -h 192.168.0.1 -uroot -pPassword --default-character-set=utf8 datebaseName > /docker/mysql/backup/datebaseName_`date +%Y%m%d-%H:%M:%S`.sql
find /docker/mysql/backup/ -mmin +1 -name '*.sql' -exec rm -rf {} \;
echo "时间`date +%Y%m%d-%H:%M:%S`:mysql备份完成"脚本授权
1
sudo chmod -R 777 /docker/mysql/backup.sh
备份测试
1
./backup.sh
设置定时
- 编辑定时任务
1
crontab -e
- 添加以下内容(每天6、13、18点各执行一次)
1
0 6,13,18 * * * sh /docker/mysql/backup.sh > /docker/mysql/backup/backup.log 2>&1
- 编辑定时任务
查看定时任务
1
crontab -l
重启定时服务
1
systemctl restart crond.service
- 数据库设置
进入Mysql容器
1
docker exec -it mysql bash
登录
1
mysql -uroot -pPassword
授权远程访问
1
2GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Password';
flush privileges;修改root密码
1
SET PASSWORD FOR 'root' = PASSWORD('123456789');
恢复数据库命令
格式:
sudo docker exec -i {containerName} mysql -uroot -pNanjing123 {databaseName} < {导入sql文件在宿主机的绝对路径}1
sudo docker exec -i mysql mysql -uroot -p123456789 datebaseName < /docker/mysql/backup/datebaseName.sql
- 标题: Docker安装Mysql5.7
- 作者: Henry
- 创建于 : 2023-06-23 18:11:18
- 更新于 : 2023-08-08 10:26:45
- 链接: https://mybetterworks.github.io/2023/06/23/Docker安装Mysql5-7/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论