首页 > 数据库 > mysql > 正文

mysql主从复制(原创)
2013-12-09 16:50:24 点击:

主从服务器分别作以下操作: 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

同步成功。


相关热词搜索:mysql 主从 复制(原创)

上一篇:导入mysql数据库时不能导入
下一篇:mysql 数据库 表 字段 编码修改 方法