MYSQL的master/slave数据同步配置_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1977 | 回复: 0   主题: MYSQL的master/slave数据同步配置        下一篇 
jinquan
注册用户
等级:少尉
经验:390
发帖:89
精华:0
注册:2012-3-1
状态:离线
发送短消息息给jinquan 加好友    发送短消息息给jinquan 发消息
发表于: IP:您无权察看 2014-12-19 15:28:43 | [全部帖] [楼主帖] 楼主

有三个地址必须调试成功,
1 从库连接主库进行测试: mysql -h192.168.200.80 -urepluser -ptestpassword 此处必须连接成功
2 show master status;必须有相关显示

3 show slave status;


必须为

Slave_IO_Running: Yes
Slave_SQL_Running: Yes


sudo vim /etc/mysql/my.cnf mysql 配置文件
sudo /etc/init.d/mysql restart 重启 mysql

数据库服务器 Master, 主机名 :DB01, IP: 192.168.1.80

数据库服务器 Slave, 主机名 :DB02, IP: 192.168.1.103

先配置 Master 的 mysql 环境 .

修改 mysql 的配置文件 my.cnf 确保有下面的信息 , 没有加上 . 有的话修改成下面这样 . 其他的可以保持默认配置 .

[mysqld]
log-bin = mysql-bin
server-id = 1
binlog-do-db = test // 要同步的表
GRANT REPLICATION SLAVE ON *.* TO repluser@192.168.200.103 IDENTIFIED BY 'testpassword';


从库连接主库进行测试: mysql -h192.168.200.80 -urepluser -ptestpassword
此处测试应该是通过的,否则 mysql 配置有问题

------- 比如 当在另一台机器上登录 mysql 时出现如下错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'x.x.x.x' (111)


打开 /etc/mysql/my.cnf 文件,找到 bind-address = 127.0.0.1 修改为 bind-address = 0.0.0.0
-----

OK, 简单的 MySQL master 服务器配置到这里 .
重启 mysql 服务 , 登入 , 查看 master[show master status;] 状态 . 如下图 :

可通过 show master status 来监控主服务器的状态,内容如下:

+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000003 | 1164 | | |
+------------------+----------+--------------+------------------+
##### 其中 File 表示日志文件记录, Position 表示日志文件的位置,这个也是数据库执行复制操作的必须标识,后面两字段表示复制的数据库和不复制的数据库名,也可以在配置文件中你进行配置。


此处若不显示,说明配置也有问题。

再配置 Slave 的 mysql 环境 .
同样修改 my.cnf 配置文件 . 确保下面有如下信息 .

[mysqld] -- 最好是放在 [mysqld] 下面
server-id=2
master-host = 192.168.200.80
master-user = repluser
master-password = testpassword
master-port = 3306
master-connect-retry = 120
replicate-do-db = test


保存修改 , 重启 mysql 服务 . 登入数据库 , 可以看到 slave [show slave status;] 状态信息 . 如下图 :

mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.200.80
Master_User: repluser
Master_Port: 3306
Connect_Retry: 120
Master_Log_File: mysql-bin.000007
Read_Master_Log_Pos: 1627
Relay_Log_File: mysqld-relay-bin.000009
Relay_Log_Pos: 1764
Relay_Master_Log_File: mysql-bin.000007
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: test
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 1627
Relay_Log_Space: 1764
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 0


show slave status\G 如果发现有:

Slave_IO_Running: Yes
Slave_SQL_Running: Yes


就说明已经成功了,如果这两个选项不全是 Yes ,那就说明你钱面的某个配置错了,
我做的时候没有把主服务器重启,就出现 Slave_IO_Running: NO 。重启后好了

配置正常 .

简单的 MySQL 主从配置就 OK 了 . 当然这个是测试环境使用 . 生成环境还需要很多地方的优化配置 .

以下是一些备注,可看可不看。

stop slave reset slave start slave
----------- 今天发现 Mysql 不同步, show slave status 查看同步状态如下:
Slave_IO_Running: No
Slave_SQL_Running: Yes


使用 start slave 也不能同步。后来,先 stop slave 再 reset slave 再 start slave 就正常了。

-------------
解决办法 I :
1. 首先停掉 Slave 服务: slave stop
到主服务器上查看主机状态:
记录 File 和 Position 对应的值。

mysql> show master status;
+------------------+-----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+-----------+--------------+------------------+
| mysql-bin.000020 | 135617781 | | |
+------------------+-----------+--------------+------------------+
1 row in set (0.00 sec)


3. 到 slave 服务器上执行手动同步:

mysql> change master to
> master_host='192.168.200.80',
> master_user='repluser',
> master_password='testpassword',
> master_port=3306,
> master_log_file='mysql-bin.000007',
> master_log_pos=98;


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论