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则表明设置成功。

发表评论