环境准备
docker命令安装mysql
安装步骤
这里默认安装是mysql8,如果并发高可以换成5.7
首先执行docker pull mysql:8.0.18
Shell |
安装成功后,查看容器
docker sp | grep mysql
docker-compose 安装
执行附件的mysql-compose.yaml文件,内容如下:
version: "2.2"
services:
mysql:
image: mysql:8.0.18
container_name: mysql-dev
volumes:
- ./conf:/etc/mysql/conf.d
- ./logs:/logs
- ./data:/var/lib/mysql
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=123456
restart: always
command:
--max_connections=1000
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--lower_case_table_names=1
可以这里直接下载mysql-compose.yaml
执行命令如下:
docker-compose -f mysql-compose.yaml up
后续如果手动启动,命令如下
docker-compose -f mysql-compose.yaml start
后续如果手动停止,命令如下
docker-compose -f mysql-compose.yaml stop
数据库安装完成后
开启大小写敏感
首先停止容器,并删除挂载的data,
Docker stop 《容器id》
然后把容器内的my.cnf拷贝出来(容器内没有vi命令,不方便编辑),添加lower_case_table_names=1
命令如下:
Shell |
Shell |
Shell |
执行完成后启动容器
docker start 《容器id》
docker
开启远程连接
接下来需要开启远程连接和大小写敏感。
首先进入容器
执行命令
docker exec -it 《容器id》 bash
然后执行命令
mysql -uroot -p123456
连接上mysql
然后执行
Shell |
就可以通过数据库连接工具尝试连接
数据恢复
不到万不得已,不得使用,binlog数据可能不完整(binlog默认会定期删除)。
首先进入存储地址,如果docker安装的进入挂载地址,不知道挂载地址的可以进入容器
docker exec -it 《容器id》 /bin/bash
进入数据库数据存储地址,先执行sql
sql: SHOW VARIABLES LIKE '%log_bin%';
获取到binlog存储地址后,进入
如果知道挂载地址,直接进入挂载地址即可。
执行下面命令
Plain Text |
参数说明
--start_datetime 恢复数据的开始时间
--stop_datetime 恢复数据的截止时间
--binlog.000017 为当前mysql的binlog文件
生成后如果在容器中,拷贝出来,查看里面内容是否是需要的
docker cp 40b529ef92f5:/var/lib/mysql/tmp.sql tmp.sql
40b529ef92f5 是容器id,tmp.sql是之前通过binlog导出来的sql文件
导出来后检查是否是需要的sql,确认无误后执行
mysql -uroot -p -s -N -f -D techx < tmp.sql
这命令会忽略错误,一直执行完所有binlog日志
执行结束后,再把剩余的binlog文件全部按上面步骤执行完即可。