主服务器:
1.修改mysql配置文件,my.cnf,并重启mysql服务
vim /etc/mysql/my.cnf
[mysqld]
log-bin=mysql-bin #开启二进制日志
server-id=1 #设置server-id
#重启mysql服务
/etc/init.d/mysql restart
2.进入mysql创建一个用户
mysql -hlocalhost -uroot -pxxxxxx
use mysql;
#创建用户repl并设置密码为slavepass
CREATE USER 'repl'@'123.57.44.85' IDENTIFIED BY 'slavepass';
#给repl用户分配权限
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'123.57.44.85';
#刷新权限
flush privileges;
3.查看master权限,记录二进制文件名(File)和位置(Position)
SHOW MASTER STATUS;
4.可以在主服务器上设置需要同步的数据库
# 不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema
# 只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game
从服务器:
1.修改mysql配置文件,my.cnf,并重启mysql服务
vim /etc/mysql/my.cnf
[mysqld]
server-id=2 #设置server-id
#重启mysql服务
/etc/init.d/mysql restart
2.进入mysql,执行同步sql语句,并启动从服务
mysql> CHANGE MASTER TO
#主服务器地址
-> MASTER_HOST='182.92.172.80',
#主数据库用户
-> MASTER_USER='rep1',
#主数据库密码
-> MASTER_PASSWORD='slavepass',
#主数据库二进制文件名
-> MASTER_LOG_FILE='mysql-bin.000003',
#主数据库二进制文件位置
-> MASTER_LOG_POS=73;
#启动slave进程
start slave;
#查看slave状态,如果Slave_IO_Running和Slave_SQL_Running是Yes则表示配置成功
show slave status\G;
3.查看mysql的server-id,如果和my.cnf里设置的server-id不一致,则设置mysql的server-id
#查看server_id
show variables like 'server_id';
#设置server_id
set global server_id=2;
#重启从服务
slave start;