主从数据库配置的前题是:两个数据库的版本要一致
1、修改主MySQL的配置 如主数据库的IP: 192.168.1.72
[root@localhost etc] vi /home/rpm/mysql/mysql5.5/my.cnf
添加以下配置
server-id=72 #一般以IP的后两位取值
log-bin=mysql-bin #这个一定得设置,否则没有日志的话,从数据库上会报错
重启数据库
/etc/init.d/mysql restart
创建主从复制的帐号: 192.168.1.73从库IP
在mysql目录下执行如下语句:
mysql> GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO mysqlbackup@'192.168.1.73' IDENTIFIED BY '123456';
其中mysqlbackup 是备份时用的数据库用户名
123456 是备份时用的数据库用户名对应的密码
*.*表示所有库所有表,库也是可以指定具体的库和表进行复制,如test.test1(test库的test1表);
正确的状态如下:
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000031 | 991| | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
修改从库配置: 192.168.1.73从库IP
[root@localhost ~]# vi /home/rpm/mysql/mysql5.5/my.cnf
添加语句
log-bin = mysql-bin
server_id = 73
重启数据库
/etc/init.d/mysql restart
执行mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.72',
-> MASTER_USER='mysqlbackup',
-> MASTER_PASSWORD='123456',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000035',
-> MASTER_LOG_POS=449,
-> MASTER_CONNECT_RETRY=10;
结果如下:
Query OK, 0 rows affected (0.02 sec)
测试主从是否配置成功。
###启动Slave 同步进程####
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
####主从同步检查####
mysql> show slave status \G
###到这里 整个MYSQL主从的复制就完成了###
如果在使用过程中从库挂了,需要手动启动 start slave;
主库挂了话,从库会每隔一定时间去连接主库
下面为具体的数据库配置文件描述说明: