0、
一、主数据库
1、新建主服务器容器实例3307
启动容器,并创建文件夹映射
| docker run -p 3307:3306 --privileged=true --name mysql-master -v /mydata/mysql-master/log:/var/log/mysql -v /mydata/mysql-master/data:/var/lib/mysql -v /mydata/mysql-master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 |
2、进入/mydata/mysql-master/conf目录下新建my.cnf
cd /mydata/mysql-master/conf
vi my.cnf
| [mysqld] |
| |
| server_id=101 |
| |
| binlog-ignore-db=mysql |
| |
| log-bin=mall-mysql-bin |
| |
| binlog_cache_size=1M |
| |
| binlog_format=mixed |
| |
| expire_logs_days=7 |
| |
| |
| slave_skip_errors=1062 |
| |
| collation_server = utf8_general_ci |
| character_set_server = utf8 |
| |
| [client] |
| default_character_set=utf8 |
3、删除旧数据后重启master实例
| rm -rf /mydata/mysql-master/data/* |
| docker restart mysql-master |
| docker exec -it mysql-master /bin/bash |
| mysql -uroot -proot |
| CREATE USER 'slave'@'%' IDENTIFIED BY '123456'; |
| GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'slave'@'%'; |
show master status; 记住 Position=617
二、从数据库
1、新建从服务器容器实例3308
| docker run -p 3308:3306 --privileged=true --name mysql-slave -v /mydata/mysql-slave/log:/var/log/mysql -v /mydata/mysql-slave/data:/var/lib/mysql -v /mydata/mysql-slave/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7 |
2、进入/mydata/mysql-slave/conf目录下新建my.cnf
| [mysqld] |
| |
| server_id=102 |
| |
| binlog-ignore-db=mysql |
| |
| log-bin=mall-mysql-slave1-bin |
| |
| binlog_cache_size=1M |
| |
| binlog_format=mixed |
| |
| expire_logs_days=7 |
| |
| |
| slave_skip_errors=1062 |
| |
| relay_log=mall-mysql-relay-bin |
| |
| log_slave_updates=1 |
| |
| read_only=1 |
| |
| collation_server = utf8_general_ci |
| character_set_server = utf8 |
| |
| [client] |
| default_character_set=utf8 |
3、删除旧数据后重启master实例
| rm -rf /mydata/mysql-slave/data/* |
| docker restart mysql-slave |
| rm -rf /mydata/mysql-slave/data/* |
| docker restart mysql-slave (第二次重启) |
三、两个库
1、
| 在主数据库中查看主从同步状态 |
| show master status; |
| 查看Position=617 |
| docker exec -it mysql-slave /bin/bash |
| mysql -uroot -proot |
| change master to master_host='192.168.1.24', master_user='slave', master_password='123456', master_port=3307, master_log_file='mall-mysql-bin.000001', master_log_pos=617, master_connect_retry=30; |
| (这里master_log_pos=617可能不是617,show master status;查询pos) |
| |
| show slave status \G;(查询开启状态) |
| Slave_IO_Running: No |
| Slave_SQL_Running: No |
| start slave;(开启主从同步) |
| show slave status \G;(查询开启状态) |
多次重启主库和从库,查询pos,保证主从一致,直到查询
| show slave statu |
| Slave_IO_Running: Yes |
| Slave_SQL_Running: Yes |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2018-12-06 11.5 【Linq 】连接
2018-12-06 11.6 【Linq】分组和延续