Mysql主从配置:
1、主数据库配置:打开server-id=1,关闭server-id=2,打开log-bin=mysql-bin和binlog_do_db=同步的数据库,binlog_ignore_db=不同步的数据库
2、进入主数据库:设置用户:GRANT REPLICATION SLAVE ON *.* TO 'user'@'X.X.X.X' IDENTIFIED BY 'password';查询状态:show master status;
3、从数据库配置:打开server-id=2,关闭server-id=1,关闭log-bin=mysql-bin和binlog_do_db=同步的数据库,binlog_ignore_db=不同步的数据库
4、进入从数据库:CHANGE MASTER TO MASTER_HOST='172.16.1.105',MASTER_USER='slave',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000013', MASTER_LOG_POS=107; start slave;
5、完成测试
Mysql主主配置:
1.创建用户并授权
server1:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'server2'@'192.168.1.110' IDENTIFIED BY 'server2';
server2:
mysql> GRANT REPLICATION SLAVE ON *.* TO 'server1'@'192.168.1.108' IDENTIFIED BY 'server1';
2.修改Mysql的主配置文件
server1:
[mysqld]
server-id = 10
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 1 //设置自动增长的字段的偏移量,即初始值为1
启动Mysql服务:
# service mysqld restart
server2:
[mysqld]
server-id = 20
log-bin = mysql-bin
replicate-do-db = mydb
auto-increment-increment = 2 //每次增长2
auto-increment-offset = 2 //设置自动增长的字段的偏移量,即初始值为2
启动Mysql服务:
# service mysqld restart
注:二都只有server-id不同和 auto-increment- offset不同
auto-increment-increment的值应设为整个结构中服务器的总数,本案例用到两台服务器,所以值设为2。
3.重新启动两个服务器
# service mysqld restart
4.为了让两个数据库一样,我们备份其中一个数据库,然后在另一个数据库上恢复,这样是两个数据库一开始都是一样的。在server1上操作:
# mysqldump --databases luowei > /tmp/luowei.sql
在server2上操作:
创建一个与mydb同名的空数据库
# mysql
> CREATE DATABASE mydb;
# scp 192.168.1.108:/tmp/mydb.sql ./
# mysql -uroot -p mydb < /tmp/luowei.sql
5.然后两个服务器相互通告二进制日志的位置并启动复制功能:
在server1上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.110',
> MASTER_USER='server2',
> MASTER_PASSWORD='server2';
mysql > START SLAVE;
在server2上:
# mysql
> CHANGE MASTER TO
> MASTER_HOST='192.168.1.108',
> MASTER_USER='server1',
> MASTER_PASSWORD='server1';
mysql > START SLAVE;