Docker部署mysql
启动容器
docker run \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-v /home/data/mysql/data:/var/lib/mysql:rw \
-v /etc/localtime:/etc/localtime:ro \
--name mysql \
--restart=always \
-d mysql:8.0
连接数配置
show variables like '%max_connections%';
set GLOBAL max_connections=5000;
set GLOBAL mysqlx_max_connections=5000;
安装VIM和CRON定时任务
docker exec -it id /bin/bash
(下面这个命令注意最后一定要选y)
apt-get update && apt-get install vim
apt-get update && apt-get install cron
如果连接mysql报错:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因:原因是/var/lib/mysql的访问权限问题。
chown root /var/lib/mysql/
编写备份数据脚本
cd /=/usr/local/mysql/backup
vim mysql_db_backup.sh
#!/bin/bash
#完成数据库的定时备份。
#备份的路径
DATAPATH=/usr/local/mysql/backup
#当前的时间作为文件名
DATETIME=$(date +%Y-%m-%d_%H:%M:%S)
#echo ${DATETIME}
echo "======开始备份路径是: $DATAPATH======"
#主机
HOST=192.168.0.1
#用户名
DB_USER=root
#密码
DB_PWD=admin
#备份数据库名
DATABASE=huyou
#如果备份的路径文件夹存在,就使用,否则就创建
[ ! -d "${DATAPATH}" ] && mkdir -p "${DATAPATH}"
#执行mysql的备份数据库的指令
mysqldump --no-defaults -u${DB_USER} -p${DB_PWD} -h${HOST} ${DATABASE} > ${DATAPATH}/${DATETIME}.sql
#删除7天前的备份文件
find ${DATAPATH} -mtime +7 -name "*.sql" -exec rm -rf {} \;
echo "======数据库备份成功======"
授予可执行权限
chmod u+x mysql_db_backup.sh
执行脚本
./mysql_db_backup.sh
定时任务每天2点执行
crontab -e
如果不能复制则
方法一:
在普通模式下键入:set mouse-=a
方法二:
编辑 ~/.vimrc 文件,加入如下代码:
if has(‘mouse’)
set mouse-=a endif
0 2 * * * /usr/local/mysql/backup/mysql_db_backup.sh
查看定时任务
crontab -u root -l
删除定时任务
crontab -r
容器中查看定时任务状态
/etc/init.d/cron status
/etc/init.d/cron start
linux中查看定时任务状态
service crond status
systemctl start crond
查看错误日志位置
show variables like 'log_error';
mysql查看日志详解
https://blog.csdn.net/Abysscarry/article/details/79949480