关于Mysql双向同步复制的介绍分析
发布时间:2024-11-25
发布时间:2024-11-25
Mysql
关于Mysql双向同步复制的介绍分析
MySQL是一个开放源码的小型关联式数据库管理系统,开发者为瑞典MySQL AB公司。目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。专职优化、域名注册、网站空间、虚拟主机、服务器托管、、vps主机、服务器租用的中国信息港来为你做详细介绍!
1、修改原slave 服务器配置
// 配置原slave服务器/etc/http://f文件,添加红字的内容:
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配置文件
// 配置原master务器/etc/http://f文件,添加红字的内容:
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数据库同步更新
Mysql
master-user=replication # 更新用户
master-password=123456 # 密码
master-port=3306 # 端口
replicate-do-db=test1 # 需要更新的库
// 重启mysql服务
# service mysqld restart
//在原从服务器查询
# 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)
//在原主服务器查询
# mysql -uroot -p123456
mysql> SHOW MASTER STATUS;
//先停止slave服务
mysql> SLAVE STOP;
mysql> CHANGE MASTER TO MASTER_HOST='192.168.20.128',MASTER_USER='replication',MASTER_PASSWORD='123456',MASTER_PORT=3306,MASTER_LOG_FILE='updatelog.000001',MASTER_LOG_POS=106;
// 根据上面主服务器的show master status的结果,进行从服务器的二进制数据库记录回归,达到同步的效果
//启动从服务器同步服务
mysql> SLAVE START;
5、验证配置
//在beijing原主服务器上进入mysql命令行
mysql> SHOW SLAVE STATUS\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启.表明数据库正在同步。
//在shanghai原从服务器上进入mysql命令行
mysql> SHOW SLAVE STATUS\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
此处Slave_IO_Running ,Slave_SQL_Running 都应该是yes,表示从库的I/O,Slave_SQL线程都正确开启.表明数据库正在同步。
6、测试
//在beijing服务器上建立一个表
mysql> use test1;
mysql> create table test1(id int(4),name varchar(20));
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| name |
| test1 |
Mysql
| user |
+-----------------+
3 rows in set (0.00 sec)
//在shanghai服务器上查询
mysql> use test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| name |
| test1 |
| user |
+-----------------+
3 rows in set (0.00 sec)
//在shanghai服务器上建立一个表
mysql> create table test2(id int(4),name varchar(20));
mysql> show tables;
+-----------------+
| Tables_in_test1 | +-----------------+
| name |
| test1 |
| test2 |
| user |
+-----------------+ 4 rows in set (0.00 sec)| user |
+-----------------+
3 rows in set (0.00 sec)
//在beijing服务器上查询
mysql> show tables;
+-----------------+
| Tables_in_test1 |
+-----------------+
| name |
| test1 |
| test2 |
| user |
+-----------------+
4 rows in set (0.00 sec)
双向复制试验成功!!!
中国信息港提供:虚拟主机,vps主机,网站空间,服务器托管,服务器租用,主机空间,网络虚拟主机,全能虚拟主机,国内虚拟主机,香港虚拟主机,linux虚拟主机,windows虚拟主机,php虚拟主机空间,asp虚拟主机空间, jsp虚拟主机,.net虚拟主机,java虚拟主机,云虚拟主机,云技术架构,多线虚拟主机,最快虚拟主机,论坛虚拟主机,动态虚拟主机,静态虚拟主机, 中国信息港为企业、政府、组织等机构或者个人提供最新最全的虚拟主机资讯。虚拟主机技术是互联网服务器采用的节省服务器硬体成本的技术,中国信息港是中国顶级的虚拟主机服务商,10多年行业服务经验,7×24小时专业技术支持,云技术架构,全新硬件,功能强大的控制面板,资源灵活划分,完美满足各种应用需求!