设为首页 加入收藏

TOP

MySQL主主以及主从复制、半同步复制(二)
2014-11-24 03:18:37 来源: 作者: 【 】 浏览:6
Tags:MySQL 以及 主从 复制 同步
-+―――――+――――――+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+――――――+―――-+―――――+――――――+
| mysql-bin.000004 | 106 | test1,netseek | mysql,test |
+――――――+―――-+―――――+――――――+
//(同步之前如果怀疑主从数据不同步可以采取:上面冷备份远程拷贝法或者在从服务器上命行
同步方法)在从服务器执行MySQL 命令下:
mysql> SLAVE STOP; #先停止slave服务
mysql> CHANGE MASTER TO MASTER_LOG_FILE=’updatelog.000004′,MASTER_LOG_
POS=106;
// 根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,
达到同步的效果
mysql> SLAVE START; #启动从服务器同步服务
// 用show slave statusG;看一下从服务器的同步情况
mysql> SHOW SLAVE STATUSG;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
如果都是yes,那代表已经在同步.
8、测试
// 在主服务器上建立一个表
mysql> use test1;
mysql> create table name(id int(4),name varchar(20));
mysql> show tables;
+――――― +
| Tables_in_test1 |
+――――― +
| name |
| user |
+――――― +
2 rows in set (0.01 sec)
// 在从服务器上查询
mysql> use test1;
mysql> show tables;
+――――― +
| Tables_in_test1 |
+――――― +
| name |
| user |
+――――― +
2 rows in set (0.00 sec)
单项复制试验成功!!!!
四、双向同步配置
1、修改原slave 服务器配置
192.168.20.102
// 配置原slave服务器/etc/my.cnf文件,添加红字的内容:
server-id=2 # 从服务器ID号,不要和主ID相同
master-host=192.168.20.155 # 指定主服务器IP地址
master-user=replication # 指定在主服务器上可以进行同步的用户名
master-password=123456 # 密码
master-port=3306 # 同步所用端口
master-connect-retry=60 # 断点从新连接时间
replicate-ignore-db=mysql # 屏蔽对mysql库的同步
replicate-do-db=test1 # 同步的数据库的名称
log-bin=/var/log/mysql/updatelog # 设定生成log文件名
binlog-do-db=test1 # 设置同步数据库名
binlog-ignore-db=mysql # 避免同步mysql用户配置,以免不必要的麻烦
2、创建更新日志的目录并给mysql用户的权限
# mkdir /var/log/mysql
# chown -R mysql.mysql /var/log/mysql
3、重新启动mysql服务,创建一个同步专用账号
# service mysqld restart
//给与从服务器用户replication的同步权限
# mysql -uroot -p123456
mysql> GRANT REPLICATION SLAVE ON *.* TO
‘replication’@’192.168.20.%’IDENTIFIED BY ’123456′;
//刷新权限,使设置生效
mysql>Flush privileges;
4、修改原master配置文件
192.168.20.101
// 配置原master务器/etc/my.cnf文件,添加红字的内容:
log-bin=mysql-bin # 启动二进制日志系统
server-id=1 # 本机数据库ID 标示为主
log-bin=/var/log/mysql/updatelog # 设定生成log文件名,这里的路径没有mysql
目录要手动创建并给于它mysql用户的权限。
binlog-do-db=test1 # 二进制需要同步的数据库名
binlog-ignore-db=mysql,test # 避免同步mysql用户配置,以免不必要的麻烦
master-host=192.168.20.128 # 设置从原slave数据库同步更新
master-user=replication # 更新用户
master-password=123456 # 密码
master-port=3306 # 端口
replicate-do-db=test1 # 需要更新的库
// 重启mysql服务
# service mysqld restart
// 在B服务器查询
192.168.20.102
# mysql -uroot -p123456
mysql> SHOW MASTER STATUS;
+――――――+―――-+―――― +――――――+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+――――――+―――-+―――― +――――――+
| updatelog.000001 | 106 | test1 | mysql |
+――――――+―――-+―――― +――――――+
1 row in set (0.00 sec)
// 在A服务器查询
192.168.20.101
# mysql -uroot -p123456
mysql> SHOW MASTER STATUS;
// 先停止slave服务
mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST=’192.168.20.128′,MASTER_USER=’repli
cation’,MASTER_PASSWORD=’123456′,MASTER_PORT=3306,MASTER_LOG_FILE=’upda
telog.000001′,MASTER_LOG_POS=106;
// 根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,
达到同步的效果
// 启动B服务器同步服务
192.168.20.102
mysql> SLAVE START;
5、验证配置
// 在A服务器上进入mysql命令行
192.168.20.101
mysql> SHOW SLAVE STATUSG;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都
正确开启.表明数据库正在同步。
// 在B服务器上进入mysql命令行
192.168.20.102
mysql> SHOW SLAVE STATUSG;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都
正确开启.表明数据库正在同步。
6、测试
// 在A服务器上建立一个表
192.168.20.101
mysql> use test1;
首页 上一页 1 2 3 4 下一页 尾页 2/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇mysql主从配置 下一篇MySQL中两种索引Hash与B-Tree的区..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·工业机器人TCP校准中 (2025-12-25 05:19:17)
·opc 通讯协议与 TCP (2025-12-25 05:19:15)
·labview中tcp/ip通信 (2025-12-25 05:19:13)
·新书介绍《Python数 (2025-12-25 04:49:47)
·怎么利用 Python 进 (2025-12-25 04:49:45)