Mysql 一主多从配置

配置环境描述,mysqlyum安装的。

master myql ip 192.168.5.1

Slave mysql ip 192.168.5.2

Slave mysql ip 192.168.5.2

 

2 master slave上的配置。

/etc目录下可能无my.cnf文件,从/user/share/mysql目录中拷贝my-medium.cnf /etc并修改成my.cnf

[root@localhost etc]# cp/usr/share/mysql/my-medium.cnf etc/my.cnf

3master my.cnf的配置

[root@localhost /]# vi/etc/my.cnf

 

my.cnf文件[mysqld]下面加上如下内容

server-id = 1
log-bin=log

binlog-do-db=YYY //需要同步的数据库不加的话表示同步所有的数据库
binlog-ignore-db=mysql//被忽略的数据库
binlog-ignore-db=information-schema//被忽略的数据库

4slave添加同步账号

mysql> grant all privilegeson *.* to 'repl'@'192.168.5.2' identified by '123456';

mysql> grant all privilegeson *.* to 'repl'@'192.168.5.3' identified by '123456';

 

5slave2.3 上面验证用户是否能连接到数据库

[root@localhostetc]# mysql -h192.168.5.1 -urepl -p123456

 

6完成后重启master数据库。

7修改slave2.3 上面的my.cnf配置文件,2台机器上的配置文件是一样的只不过server-id不能一样可以自己命名,但是最好起有意义的名字。

 

server-id=2服务器id

master-host=192.168.5.1master服务器ip地址

master-user= repl同步时用的账号

master-password=123456同步时用的密码

master-port=3306同步时用的端口

master-connect-retry=60连接断开后重新连接的时间差(秒)

下面的更具情况是否添加(本次是同步所有的数据库)

#binlog-do-db=YYY//需要同步的数据库不加的话表示同步所有的数据库
#binlog-ignore-db=mysql //被忽略的数据库
#binlog-ignore-db=information-schema //被忽略的数据库

8进入slave2.3 上面做同样的步骤,进入数据库,开始同步。

Mysql>start slave;

Mysql>show slave status\G;

 

如果两个slave中的Slave_IO_RunningSlave_SQL_Running状态均为Yes则表明设置成功。

10排除

 

出现这个错误是因为show slave status\G; 中的G相当于是结束的意思而;这个分号也是结束的意思,在语法上就出现了错误所以应该去掉最后的;分号。

11 到此mysql的同步就完成。