CentOS 6.5 服务器配置(四)

2014年10月03日 陈鑫杰

概述

简要描述了 mysql 数据库主从复制的配置信息。

原料

CentOS 6.5(两台+,ip:192.168.1.101/102/…)
apache-tomcat-6.0.41.tar.gz(安装教程

主数据库配置

sudo vi /etc/my.cnf
在 [mysqld] 下增加一下配置信息:
#主从配置(主)
log-bin=mysql-bin #启用二进制日志
server-id=101 #服务器唯一ID,默认取IP最后一位
log-bin=/var/log/mysql/updatelog #设定生成log文件名,文件路径需要手动创建并授权给mysql用户权限
binlog-do-db=foamvalue #二进制需要同步的数据库名称
binlog-ignore-db=mysql,test #避免同步mysql用户配置
expire-logs-days=7 #只保留7天的二进制日志
重启服务,使配置生效:mysqld restart

授权从数据库

进入主数据库:mysql –uroot –p
use mysql;
如果提示没有权限或报错信息,那么可能是 root 权限在安装过程中丢失了,先退出,恢复 root 权限后再操作。
授权从数据库:GRANT REPLICATION SLAVE ON . to ‘root’@’192.168.1.102’ identified by ‘root’;
授权生效:FLUSH PRIVILEGES;
主库加锁(只读):FLUSH TABLES WITH READ LOCK;
查看状态:show master status;
+——————+———–+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———–+————–+——————+
| updatelog.000008 | 101800607 | foamvalue | mysql,test |
+——————+———–+————–+——————+
1 row in set (0.00 sec)
拷贝 File 和 Postion 的值

数据备份和还原

备份主数据库,并还原到从数据库。

从数据库配置

sudo vi /etc/my.cnf
在 [mysqld] 下增加一下配置信息:
#主从配置(从)
log-bin=mysql-bin #启用二进制日志
server-id=102 #服务器唯一id,默认取IP最后一段
expire_logs_days=7
replicate-ignore-db=mysql #屏蔽对mysql库的同步
replicate-do-db=foamvalue #同步数据库的名称
重启服务,使配置生效:mysqld restart

主从设置

进入从数据库:mysql –uroot –p
use mysql;
执行:change master to master_host=’192.168.1.101’, master_user=’root’, master_password=’root’, master_log_file=’ updatelog.000008’, master_log_pos=101800607;
File 和 Postion 的值

从数据库启动 slave

start slave;

主从同步检查

进入从数据库,执行:show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.101
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: updatelog.000008
Read_Master_Log_Pos: 101800607
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 11015385
Relay_Master_Log_File: updatelog.000008
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: foamvalue
Replicate_Ignore_DB: mysql
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: 101800607
Relay_Log_Space: 11015541
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
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 101
1 row in set (0.00 sec)
Slave_IO_Running 和 Slave_SQL_Running 都为 YES 时,主从同步配置完成,如果为NO,则需要查看相应的报错信息。

主数据库解锁

UNLOCK TABLES;

主从同步错误 —— 处理方法

先锁住主数据库,备份数据库,获取主数据库的 File 和 Postion 数据。
登录从数据库,停止同步(stop slave),还原数据库,重新执行主从设置语句。
退出,重启从数据库。
最后,解锁主数据库

(转载本站文章请注明作者和出处 FoamValue – www.foamvalue.com ——=== 访问 404页面 寻找遗失儿童。 ===——