首页 > 数据库 > MySQL > 正文

mysql主从复制安装配置,从线上环境配置主从

2024-07-24 12:37:40
字体:
来源:转载
供稿:网友

主从复制是mysql数据库热备份的一个常用的做法,这样可以保存数据库任何一方出现问题可及时更换上,下面小编来分享一篇关于从线上环境配置主从的mysql主从复制安装配置实例.

主机172.16.0.21,172.16.0.22,centos6.2,分别使用yum安装mysql

给21上的mysql新建库:

CREATE DATABASE `replytest1` /*!40100 DEFAULT CHARACTER SET utf8 */;

建表:

  1. CREATE TABLE `replytest1`.`test1` ( 
  2. `id` INT UNSIGNED NOT NULL AUTO_INCREMENT, 
  3. `test1col` VARCHAR(45) NULL
  4. PRIMARY KEY (`id`)); 

插入数据:

  1. INSERT INTO `replytest1`.`test1` (`test1col`) VALUES (’1′); 
  2. INSERT INTO `replytest1`.`test1` (`test1col`) VALUES (’2′); 

修改主库配置文件:

server-id = 1 //数据库ID号,为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;

log-bin=mysql-bin //启用二进制日志;

binlog-do-db=data //需要同步的二进制数据库名;可以写多行

binlog-ignore-db=mysql //不同步的二进制数据库名;这个同步后听说很麻烦

log-slave-updates //把更新的记录写到二进制文件中;

slave-skip-errors

创建负责复制的用户:

  1. ###GRANT ALL PRIVILEGES ON *.* TO reply@172.16.0.1 IDENTIFIED BY ‘reply’ WITH GRANT OPTION
  2. grant replication slave on *.* to test@192.168.2.119 identified by ‘********’ 
  3. flush privileges

锁定主库:FLUSH TABLES WITH READ LOCK;

导出主表数据:解锁并检查当前的master状态及复制到哪里.

UNLOCK TABLES;Show master status;

从库设置,修改配置文件,代码如下:

  1. #从库设置 
  2. server-id=2 
  3. master-host=172.16.0.1 
  4. master-user=reply 
  5. master-password=reply 
  6. master-connect-retry=600 #如果发现主服务器断线,重新连接的时间差; 
  7. replicate-ignore-db=mysql 
  8. replicate-ignore-db=test 
  9. log-slave-update 
  10. slave-skip-errors 
  11. #从库设置结束 

重启mysql,在从服务器上执行stop slave,reset master命令,重置成主数据库,代码如下:

  1. mysql> stop slave; 
  2. Query OK, 0 rows affected, 1 warning (0.00 sec) 
  3. mysql> reset master; 
  4. change master to master_host=’172.16.0.21′,master_user=’reply’, master_password=’reply’,  master_log_file=’mysql-bin.000001′, master_log_pos=106; 
  5. Slave start; 
  6. mysql>  show slave statusG 
  7. *************************** 1. row *************************** 
  8. Slave_IO_State: Waiting for master to send event 
  9. Master_Host: 172.16.0.21 
  10. Master_User: reply 
  11. Master_Port: 3306 
  12. Connect_Retry: 600 
  13. Master_Log_File: mysql-bin.000001 
  14. Read_Master_Log_Pos: 106 
  15. Relay_Log_File: mysqld-relay-bin.000002 
  16. Relay_Log_Pos: 251 
  17. Relay_Master_Log_File: mysql-bin.000001 
  18. Slave_IO_Running: Yes  --Vevb.com 
  19.             Slave_SQL_Running: Yes 
  20. Replicate_Do_DB: 
  21. Replicate_Ignore_DB: mysql,test 
  22. Replicate_Do_Table: 
  23. Replicate_Ignore_Table: 
  24. Replicate_Wild_Do_Table: 
  25. Replicate_Wild_Ignore_Table: 
  26. Last_Errno: 0 
  27. Last_Error: 
  28. Skip_Counter: 0 
  29. Exec_Master_Log_Pos: 106 
  30. Relay_Log_Space: 407 
  31. Until_Condition: None 
  32. Until_Log_File: 
  33. Until_Log_Pos: 0 
  34. Master_SSL_Allowed: No 
  35. Master_SSL_CA_File: 
  36. Master_SSL_CA_Path: 
  37. Master_SSL_Cert: 
  38. Master_SSL_Cipher: 
  39. Master_SSL_Key: 
  40. Seconds_Behind_Master: 0 
  41. Master_SSL_Verify_Server_Cert: No 
  42. Last_IO_Errno: 0 
  43. Last_IO_Error: 
  44. Last_SQL_Errno: 0 
  45. Last_SQL_Error: 
  46. 1 row in set (0.00 sec)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表