以前做mysql主从同步,以前用mysql5.1直接配置2个my.ini配置文件就可以,比较方便,最近用Mysql5.5,按照那种方法,配置完以后,重启mysql服务器,启动不了,查询了手册,才知道mysql5.5 版本以上不再支持master的用法,在网上找了资料,成功配置了5.5主从复制,具体方法如下:
1、主服务器master配置文件my.cnf:
server-id = 1(主数据库一般都是id为1)
log-bin=mysql-bin (必须的)
binlog_format=mixed (必须的,推荐类型为mixd)
expire_logs_days=5 (为避免日志文件过大,设置过期时间为5天)
binlog-ignore-db = mysql (忽略同步的文件,也不记入二进制日志,可列多行)
binlog-ignore-db = information_schema
replicate-do-db = test (需要同步的文件,记入二进制日志,可列多行)
2、从服务器slave配置文件my.cnf:
server-id = 2
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days=5
bin_log日志必须开启
3、接着重启mysql 服务器
4、 Mysql主服务器(ip地址:192.168.1.130)
给从服务器授权haoyangshi用户,密码为haoyangshi.com,使其具有访问主服务器权限
接着执行一下命令:
GRANT replication slave on *.* to 'slave' @ '192.168.1.131' IDENTIFIED BY 'slavepswd';
5、查看Mysql主服务器的状态
执行:show master status;
记录master数据库所处的位置
show master status;
| File | Position |
| mysql-bin.000011 | 189 |
6、查看Mysql从服务器(ip地址:192.168.1.131)的状态
执行:slave stop;
执 行:change master to master_host='192.168.1.130', master_port=3306, master_user=’slave’, master_password=’slavepswd’, master_log_file=’mysql-bin.000011′, master_log_pos=189;
执行:slave start;
7、查询slave的状态:mysql> show slave status \G;看下slave的状态:
Master_Log_File: mysql-bin.000011 (和主mysql一致)
Read_Master_Log_Pos: 189 (和主mysql一致)
Slave_IO_Running: Yes (读写)
Slave_SQL_Running: Yes (数据库状态)
8、测试数据库是否能够同步:略;
9、几个常用的命令:
Slave start; --启动复制线程
Slave stop; --停止复制线程
Reset slave; --重置复制线程
Show slave status; --显示复制线程的状态
Show slave status\G; --显示复制线程的状态(分行显示)
Show master status\G; --显示主数据库的状态(分行显示)
Show master logs --显示主数据库日志,需在主数据库上运行
Change master to; --动态改变到主数据库的配置
Show processlist --显示有哪些线程在运行