Centos5.7下Mysql主从同步配置
Linux下的mysql主从同步教程很多,很简单的配置弄的很复杂,有些还配置不通。下面我把自己的配置过程整理如果,希望能给您一点帮助。
环境
Master操作系统:Centos 5.7
Ip:222.123.44.65
Slave操作系统:Centos 5.7
Ip:222.123.44.66
根据安装方法的不同,数据库相关路径也不太一致,我用YUM安装,因些,数据库存放路径/var/lib/mysql,数据库配置文件路径/usr/share/mysql,数据库相关命令/usr/bin.
查看主库服务器/usr/share/mysql目录下的cnf文件
/usr/share/mysql/*.cnf
其中.cnf文档如下:
My-small.cnf 内存少于或等于64M,只提供很少数据库服务
My-medium.cnf 内存在32M-64M之间而且和其他服务一起使用,如web
My-large.cnf 内存在512M主要提供数据库服务
My-huge.cnf 内存在1G-2G,主要提供数据库服务
My-innodb-heavy-4G.cnf 内存有4G,主要提供较大负载数据库服务(一般服务器使用这个)
复制文件到/etc下并更名为my.cnf
Cp /usr/share/mysql/my-innodb-heavy-4G.cnf /etc/my.cnf
***Master端***
进入mysql,创建一个数据库repldb
Mysql>create database repldb;
打开my.cnf,并添加如下字段
Vi /etc/my.cnf
Server-id = 1
Log-bin = log
Binlog-do-db = repldb //需要同步的数据库,如果没有本行,即表示同步所有数据库
Binlog-ignore-db = mysql //被忽略的数据库
在masters机上为slave机添加一同步账号
Grant replication slave on *.* to
'repldb'@'222.123.43.66'
identified by '123456';
重启master机的mysql服务
Service mysqld restart
用show master status命令看日志情况
mysql> show master status;
+------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------+----------+--------------+------------------+
| log.000011 | 3398273 | repldb | mysql |
+------------+----------+--------------+------------------+
1 row in set (0.00 sec)
***Slave端***
进入mysql,创建一个数据库repldb
Mysql>create database repldb;
打开slave机中的my.cnf的配置文件,操作过程同master机一样
Vi /etc/my.cnf,并添加如下字段
Server-id = 2
Master-host = 222.123.43.65
Master-user = repldb
Master-password = 123456
Master-port = 3306
Master-connect-retry = 10
然后重启slave机的mysql
Service mysqld restart
在slaves机中进入mysql
Mysql>start slave;
Mysql>show slave status\G;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 222.186.43.118
Master_User: phpwind
Master_Port: 3306
Connect_Retry: 10
Master_Log_File: log.000011
Read_Master_Log_Pos: 4514237
Relay_Log_File: mysqld-relay-bin.000073
Relay_Log_Pos: 1116193
Relay_Master_Log_File: log.000011
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: phpwind
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: 4514237
Relay_Log_Space: 1116193
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
1 row in set (0.00 sec)
ERROR:
No query specified
如果slave_IO_running,slave_SQL_Running状态为Yes则表明设置成功。