[toc]
docker快速部署mysql
拉取mysql镜像
docker pull mysql:8.0 docker pull mysql:5.7 针对上面不同版本,只需要将对应的版本调整下即可
第一种 mysql
docker run -di --restart=always --name=mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0
第二种 mysql
docker run -di --restart=always -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:8.0
mysql安装之后
- docker ps -a 查找到容器id
- docker exec -it id /bin/bash 进入mysql容器
- 针对5.7
mysql -uroot -p123456
use mysql
update user set authentication_string = 'root' where user = 'root' and host = '%';
update user set authentication_string = 'root' where user = 'root' and host = 'localhost';
alter user 'root'@'%' identified with mysql_native_password by 'root';
- 针对8.0
mysql -uroot -p123456
use mysql
查询mysql加密方式
select host,user,plugin from user;
修改加密方式
alter user 'root'@'%' identified with mysql_native_password by 'root';
docker mysql 定时备份
参考如下:
- https://blog.csdn.net/qq_32688731/article/details/102910199
- https://www.cnblogs.com/longxing520/archive/2020/10/13/13807712.html
创建 sheel文件
#!/bin/bash
docker exec -it mysql mysqldump -uroot -proot test > "/usr/local/test/mysql/backup/data_`date +%Y%m%d`.sql"
send=`date '+%Y-%m-%d %H:%M:%S'`
if [ $? -ne 0 ];
then
# 任务失败,发送邮件
echo "$send 任务失败,发送邮件"
exit -1
else
echo "$send 数据备份成功!"
fi
crontab -e 创建linux任务计划
# 每天下午16点02分执行
17 17 * * * sh /usr/local/hsmj/test_dump.sh > /usr/local/test/mysql/backup/mysql_dumps.log 2>&1
crontab -l 查询任务计划列表
来源:oschina
链接:https://my.oschina.net/kcnf/blog/4952155