环境:window10,docker desktop,docker image 是 mysql5.7
WSL2 仅适用于 Windows 10 版本 1903、内部版本 18362 或更高版本。
docker-desktop新版使用wsl2的Linux文件来提高文件性能了。下面的不适用新版本的docker-desktop了
步骤:
1、在E盘创建目录如下:
存放配置文件
E:/Docker/mysql-master/conf
存放日志文件
E:/Docker/mysql-master/logs
存放数据库文件
E:/Docker/mysql-master/data
2、cmd命令窗口下录入
docker pull mysql:5.7
docker run -p 3306:3306 --name mysql-master -v /E/Docker/mysql-master/conf:/etc/mysql/conf.d -v /E/Docker/mysql-master/logs:/var/log/mysql -v /E/Docker/mysql-master/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
3、创建E:/Docker/mysql-master/conf/my.cnf内容如下
#mysqld [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_general_ci #表名字大小写是否敏感,1表示不敏感 lower_case_table_names = 1 #最大连接数 max_connections = 500 #最大错误连接数 max_connect_errors = 1000 ############################主从复制设置##################################### server-id=10 #开启mysql binlog功能 log-bin=mysql-bin #binlog记录内容的方式,记录被操作的每一行 binlog_format = ROW #对于binlog_format = ROW模式时,减少记录日志的内容,只记录受影响的列 binlog_row_image = minimal #master status and connection information输出到表mysql.slave_master_info中 master_info_repository = TABLE #the slave‘s position in the relay logs输出到表mysql.slave_relay_log_info中 relay_log_info_repository = TABLE #作为从库时生效,想进行级联复制,则需要此参数 log_slave_updates #作为从库时生效,中继日志relay-log可以自我修复 relay_log_recovery = 1 #作为从库时生效,主从复制时忽略的错误 slave_skip_errors = ddl_exist_errors [mysql] default-character-set = utf8mb4 [mysqld_safe] default-character-set = utf8mb4 [client] default-character-set = utf8mb4
启动后查看发现cnf文件生效