MYSQL 5 同步
MYSQL数据同步备份
A服务器: 192.168.1.2 主服务器master
B服务器: 192.168.1.3 副服务器slave
A服务器设置
#mysql –u root –p
mysql>GRANT FILE ON *.* TO backup@192.168.1.3 IDENTIFIED BY ‘1234';
mysql>exit
上面是Master开放一个账号backup密码1234给IP:192.168.1.3有档案处理的权限
mysqladmin –u root –p shutdown
导出Master的数据库到slave的机器,可以选择导出需要同步的数据库
在A机器上修改/etc/my.cnf
在[mysqld]区段内加入参数
log-bin=mysql-bin
server-id=1
binlog_do_db = gbbbs(要同步的数据库)
binlog_ignore_db = mysql,test,information_schema (不需要同步的库,5.0 有information_schema这个库)
重启A服务器mysql
B服务器设置
设定/etc/my.cnf
在[mysqld]区段加入
server-id = 2 (如果还有slave用户,他们的ID也随之增加,如server-id=3)
master-host = 192.168.112.71
master-user = backup
master-password = 1234
replicate-do-db = gbbbs
#replicate-do-db = database2
master-port=3306
master-connect-retry = 60
重启B服务器的MYSQL
在数据库的文件夹里有master.info文件,用来查看同步信息
其实就是MYSQL Replication
主服务器的日志表名字查询:
mysql> show master status;
从服务器:
mysql>slave stop;
mysql>slave start;
mysql>show slave status;
-
如果看到下面的,就说明已经可以数据库同步了。
-
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
[迁移数据库数据]
Am struggling with getting slaving working, and I'm wondering someone could help. Not necessarily solve it, but SHOW ME THE TROUBLESHOOTING method that is typical here.
What I've done:
1. on master box (note I did not try --master-data)
mysql> flush tables with read lock;
mysql> show master status\G;
$ mysqldump -u root -A > all_database.mysql
mysql> unlock tables;
2. copy to slave box
3. on slave box
mysql> stop slave; reset slave;
$ mysql -u root < all_database.mysql
4. change master to ... (details from show master status above)
5. mysql> start slave