GRANT REPLICATION SLAVE ON *.* TO 'repl '@'%'> GRANT ALL PRIVILEGES ON *.* TO 'repl'@'%'>
从库机器上连接主库命令 mysql -h IP地址 -uroot -p ; 测试从库连接主库,如无法连接,进行授权解决
(这里我使用第一个账户授权时到时配置完成后无法同步数据,原因是权限不够,所以这里我直接使用第二个授权命令)
修改my.cnf配置文件
vi /etc/my.cnf
加入如下参数:
server-id=1
log-bin=/var/lib/mysql/mysql-bin
binlog_do_db= test #主从同步数据库名称
character-set-server=utf8 #仅适用5.5以上版本
保存后,重启数据库 service mysqld restart;
查看server-id是否已生效
show variables like 'server_id';
如果server_id'不存在执行,创建 SET GLOBAL server_id=1;
查看主机状态 show master status;
记录下 File 和Position 后面配置从库时会用到
从库配置
这里一样要创建一个数据库,要与master上的库一致才可以(ps,仅限测试用例,正式环境为了保证数据的完整性,要从主库备份要同步的库还原到从库)
修改my.cnf配置文件
vi /etc/my.cnf
加入如下参数:
server-id = 2
log-bin=/var/lib/mysql/mysql-bin
replicate-do-db = test #主从同步数据名称
character-set-server=utf8 #仅适用5.5以上版本
保存后,重启数据库 service mysqld restart;
查看server-id是否已生效
show variables like 'server_id';
停止slave 服务
stop slave;
设置从库连接时登录主数据库的账号和密码等信息,然后启动slave (ps:这最好重新查看一下master状态,以防信息发生改变 show master status; )
CHANGE MASTER TO MASTER_HOST = '192.168.1.185' ,MASTER_USER = 'repl'
,MASTER_PASSWORD ='Abcd@1234'
,MASTER_LOG_FILE ='mysql-bin.000001'
,MASTER_LOG_POS =437;
开启slave
start slave;
show slave status;
查看这两项是否为YES,yes为正常。
Slave_IO_Running: Yes 或 Connecting to master
Slave_SQL_Running: Yes
正常说明配置成功,接下来进行测试就可以了
show processlist 可以在master上查看 slave线程状态
以下链接包含已存在的旧数据库如何同步
http://jingyan.baidu.com/article/d71306352c4b5813fcf47553.html