Mysql一主多从配置
1 配置环境描述,mysql是yum安装的。
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//被忽略的数据库
4为slave添加同步账号
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';
5在slave2.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_Running、Slave_SQL_Running状态均为Yes则表明设置成功。
10排除
出现这个错误是因为show slave status\G;中的G相当于是结束的意思而;这个分号也是结束的意思,在语法上就出现了错误所以应该去掉最后的;分号。
11 到此mysql的同步就完成。