mysql主从复制(原创)
2013-12-09 16:50:24 来源: 评论:0 点击:
收藏
主从服务器分别作以下操作: 1.1、版本一致 1.2、初始化表,并在后台启动mysql 1.3、修改root的密码备份mysql某个表命令:#mysqldump l...
有时候我们数据库压力过大需要读写分开,那么我们会遇到多个数据库同步的问题,下面是mysql主从同步的做法,如有什么疑问可留言:
主从服务器分别作以下操作:
1.1、版本一致
1.2、初始化表,并在后台启动mysql
1.3、修改root的密码
备份mysql某个表命令:
# mysqldump -uroot -p123 sjby365 > /etc/lanju.sql // 备份sjby365数据库到etc下的lanju.sql中.
#mysql -uroot -p123 sjby365< /etc/lanju.sql //恢复etc下的lanju.sql恢复到sjby365数据库中,
master主服务器中添加以下内容:
.............................................................
编辑主mysql的my.cnf配置文件,默认在etc下的my.cnf中:
#vi /etc/my.cnf
[mysqld]
server-id=1 // [必须]服务器唯一ID,默认是1。
log-bin=mysql-bin // [必须]启用二进制日志
binlog-do-db=sjby365 // 需要备份的数据库名,可写多行。
binlog-ignore-db=mysql // 不需要备份的数据库名,可以不写。
#service mysqld restart // 重新启动下mysql。
#mysql> GRANT ALL PRIVILEGES ON *.* to root@192.168.1.2. identified by '123'; // 添加授权用户,用来同步两个服务器之间的用户,密码。
#mysql> SHOW MASTER STATUS; // 查看数据并记住pos点数字,file数,记下来,下面要用。
从 slave:
............................................................................
#vi /etc/my.cnf
[mysqld]
server-id=2 //[必须]服务器唯一ID,默认是1,一般取IP最后一段
log-bin=mysql-bin //[必须]启用二进制日志
replicate-do-db=sjby365
#service mysqld restart
#mysql> slave start;
如果出现以下报错:
ERROR 1200 (HY000): The server is not configured as slave; fix in config file or with CHANGE MASTER TO
出现这种报错可以通过 执行Change master语句来解决:
flush tables with read lock
LOCK TABLES
change master to master_host='192.168.1.2',master_user='sync',master_password='123',master_log_file='mysql-bin.000001' ,master_log_pos=004;
set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
#mysql> slave start;
Query OK, 0 rows affected (0.01 sec)
#mysql>SHOW SLAVE STATUS\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
同步成功。