linux下mysql主从复制搭建
目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制
环境:
主数据库: 192.168.1.1
从数据库: 192.168.1.2
mysql安装可参考:https://www.cnblogs.com/merely/p/9714681.html
配置步骤:
1、保证两个数据库中的库和数据是一致的;
2、在主数据中创建一个同步账号(可不创建使用现有的),如果仅仅为了主从复制创建账号,只需要授予REPLICATION SLAVE权限。
1)、创建一个账号,账号:master 密码: 123456
CREATE USER 'master'@'%' IDENTIFIED BY '';
GRANT REPLICATION SLAVE ON *.* TO 'master'@'%' IDENTIFIED BY '' WITH GRANT OPTION;
3、配置主数据库
1)要主数据库,你必须要启用二进制日志(binary logging),并且创建一个唯一的Server ID,这步骤可能要重启MySQL。
2)主服务器发送变更记录到从服务器依赖的是二进制日志,如果没启用二进制日志,复制操作不能实现(主库复制到从库)。
3)复制组中的每台服务器都要配置唯一的Server ID,取值范围是1到(232)−1,你自己决定取值。
4)配置二进制日志和Server ID,你需要关闭MySQL和编辑my.cnf或者my.ini文件,在 [mysqld] 节点下添加配置。
5)下面是启用二进制日志,日志文件名以“mysql-bin”作为前缀,Server ID配置为1,如下:
[mysqld]
log-bin=mysql-bin
server-id=
#网络上还有如下配置
#binlog-do-db=mstest //要同步的mstest数据库,要同步多个数据库,就多加几个replicate-db-db=数据库名
#binlog-ignore-db=mysql //要忽略的数据库
innodb_flush_log_at_trx_commit=
sync_binlog=
4、重启mysql
5、查看主服务器状态:
cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> show master status;
注意:记录好File和Position,后面要用
6、配置从数据库:
1)从服务器,同理,要分配一个唯一的Server ID,需要关闭MySQL,修改好后再重启,如下:
[mysqld]
server-id=
#可以指定要复制的库
replicate-do-db=test-xxx #在master端不指定binlog-do-db,在slave端用replication-do-db来过滤
replicate-ignore-db=mysql #忽略的库
#网上还有下面配置
#relay-log=mysqld-relay-bin
2)配置连接主服务器的信息:
进入sqlplus:
cd /usr/local/mysql/bin
./mysql -uroot -p
mysql> stop slave;
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.1',
-> MASTER_USER='master',
-> MASTER_PASSWORD='',
-> MASTER_PORT=,
-> MASTER_LOG_FILE='mysql-bin.000001',
-> MASTER_LOG_POS=;
mysql> start slave;
3)查看状态
mysql> show slave status \G;
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.1
Master_User: master
Master_Port:
Connect_Retry:
Master_Log_File: mysql-bin.
Read_Master_Log_Pos:
Relay_Log_File: localhost-relay-bin.
Relay_Log_Pos:
Relay_Master_Log_File: mysql-bin.
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test-xxx
Replicate_Ignore_DB: mysql
...
Seconds_Behind_Master: #表示已同步
...
4)若 Slave_SQL_Running: no 请重复执行以下内容,直至yes:
stop slave;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=;
start slave;
参考的资料:
1、https://blog.csdn.net/envon123/article/details/76615059
2、https://blog.csdn.net/xiaoxinla/article/details/7679578
最新文章
- PLS入门
- 试试用有限状态机的思路来定义javascript组件
- poi生成word文件
- Linux kernel map
- Maven:mirror和repository 区别
- contiki makefile框架分析 <; contiki学习之一 >;
- FFmpeg入门,简单播放器
- 欲练JS,必先攻CSS——前端修行之路
- C# 使用 ffmpeg 进行音频转码
- 如何回滚请求<;复制系统初始的数据>;所处理的数据
- 控制可编辑的Div 在添加图片,或者@某人的时候 光标移动到最后
- spring中的AOP实验(二)
- IntelliJ IDEA 注册码 (秘钥)
- java_自定义标签运行原理
- SpringCloud微服务架构分布式组件如何共享session对象
- MVC相关问题归纳
- clickhouse安装使用文档
- AngularJS中使用Karma单元测试初体验
- Autel MaxiSys Pro MS908P Software Update Gudie
- golang 字符串截取