当前位置: > 数据库 > MySQL >

Mysql主从服务器的配置

时间:2017-03-06 00:47来源:linux.it.net.cn 作者:IT

根据要求配置MySQL主从备份、读写分离,结合网上的文档,对搭建的步骤和出现的问题以及解决的过程做了如下笔记;
现在使用的两台服务器已经安装了MySQL,是使用源码包安装的,配置的时候,加上—with-charset=gbk –with-xcharset=all。让mysql支持中文

为了避免不必要的麻烦,主从服务器MySQL版本尽量保持一致;
主:192.168.2.117
从:192.168.2.119
1、登录Master服务器,修改my.cnf,添加如下内容;
server-id = 1 //数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;
log-bin=mysql-bin //启用二进制日志;
binlog-do-db=data //需要同步的二进制数据库名;可以写多行
binlog-ignore-db=mysql //不同步的二进制数据库名;这个同步后听说很麻烦
log-slave-updates //把更新的记录写到二进制文件中;
slave-skip-errors //跳过错误,继续执行复制;
2、建立复制所要使用的用户;
mysql>grant replication slave on *.* to test@192.168.2.119 identified by ‘********’
3、重启mysql;
/usr/local/mysql/bin/mysqladmin -uroot shutdown;
/usr/local/mysql/bin/mysql _safe &
如果当前主服务器上需要同步的数据库有数据,需要先备份数据到从服务器上
4、现在备份Master上的数据;
锁定后直接用mysqldump来备份
mysql>FLUSH TABLES WITH READ LOCK;
mysqldump –u root –p data > /data.sql
接着直接执行了远程scp;
scp /data.sql root@192.168.2.119:/data.sql
5、登录Slave数据库服务器,修改my.cnf;
server-id = 2 如果以后要再加Slave号接着往后数就OK了;
log-bin=mysql-bin
master-host = 192.168.2.117
master-user = test
master-password = *******
master-port = 3306
master-connect-retry=60 //如果发现主服务器断线,重新连接的时间差;
replicate-ignore-db=mysql //不需要备份的数据库;
replicate-do-db=data //需要备份的数据库
log-slave-update
slave-skip-errors

6、把刚才从Master scp过来的文件导入到从数据库中
Mysql –u root –p date < /data.sql 7、解锁主库表; UNLOCK TABLES; Show master status; \\显示服务器状态 mysql> show master status;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000062 | 98 | shirw | mysql |
+——————+———-+————–+——————+
1 row in set (0.03 sec)
记下红色标记的字符
然后去从数据库上执行:
先停止slave stop;
CHANGE MASTER TO MASTER_LOG_FILE=’ mysql-bin.000062′,MASTER_LOG_POS=98;
然后开启复制 Slave start;
查看状态 show slave status\G
如下mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.117
Master_User: test
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: updatelog.000012
Read_Master_Log_Pos: 717039
Relay_Log_File: onlinevc-relay-bin.000013
Relay_Log_Pos: 1222
Relay_Master_Log_File: updatelog.000012
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: data
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: 717039
Relay_Log_Space: 1834
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:
1 row in set (0.00 sec)
ERROR:
No query specified
####################################
保证
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
就说明主从配置成功了,,现在修改主服务器的data数据库就可以同步到从服务器上面了



(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容