mysql主从数据库配置步骤

我亲自按照网上要求验证了一次,确认可以。步骤如下:

一、主服务器 172.27.206.6
1.1、创建一个复制用户,具有replication slave 权限。
grant replication slave on *.* to 'repl'@'172.27.206.7' identified by 'repl';
flush privileges;
1.2、编辑my.cnf文件
vi /etc/my.cnf
添加


  server-id=107


并开启log-bin二进制日志文件(Mysql需要有/var/lib/mysql/目录的读写权限【可通过chown -R mysql:mysql /var/lib/mysql命令进行更改】)


  log-bin=/var/lib/mysql/mysql-bin


其他扩展配置项: 


binlog-do-db=mysql1 #需要备份的数据库名,如果备份多个数据库,重复设置这个选项 即可
binlog-ignore-db=mysql2 #不需要备份的数据库名,如果备份多个数据库,重复设置这 个选项即可
log-slave-updates=1 #这个参数一定要加上,否则不会给更新的记录些到二进制文件 里
slave-skip-errors=1 #是跳过错误,继续执行复制操作(可选)
1.3、重启mysql数据库
service mysqld restart
#指定绝对路径,否者会出现mysql运行show master status;时无法查看日志情况
mysql> show master status;
Empty set (0.00 sec)
mysql> show binary logs;
1.4、设置读锁
flush tables with read lock;
1.5、得到binlog日志文件名和偏移量(此处记住File名称和Position值,后面slave服务器配置时需要用到)
mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 |      106 | member       | mysql            |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)


1.6、备份要同步的数据库
mysqldump member > member.sql
1.7、解锁
mysql>unlock tables;


二、从服务器(172.27.206.7)
2.1、编辑my.cnf文件
vi /etc/my.cnf
添加


server-id=109


2.2、重启从数据库


service mysqld restart
2.3、对从数据库进行相应设置


  此处要注意logfile的名称和position的值,其余host、user和password为主数据库设置的账号和密码


stop slave;


change master to  master_host='172.27.206.6',master_user='repl',master_password='repl', master_log_file='mysql-bin.000001',master_log_pos=106;


 start slave;


show slave status;


在这里主要是看:


  Slave_IO_Running=Yes
  Slave_SQL_Running=Yes


如果出现Slave_IO_Running: No或Slave_SQL_Running: NO,需要重做2.3、对从数据库进行相应设置


三、测试:


上述项配置完以后可查看master和slave上线程的状态。在master上,你可以看到slave的I/O线程创建的连接:在master上输入show processlist\G;


show processlist\G;


mysql> show processlist\G;
*************************** 1. row ***************************
     Id: 2
   User: root
   Host: localhost
     db: NULL
Command: Sleep
   Time: 765
  State: 
   Info: NULL
*************************** 2. row ***************************
     Id: 5
   User: repl
   Host: 172.27.206.7:55546
     db: NULL
Command: Binlog Dump
   Time: 132


3.1、在主数据库:172.27.206.6上添加新数据
 insert into `menber` (`name`, `id`) values('李八','4');
insert into `menber` (`name`, `id`) values('苍井空','5');


此时数据已经成功复制到slave从数据库172.27.206.7上。


注:但是从数据库上不要做任何操作,否则会影响后续的同步操作。


你可能感兴趣的:(Linux运维)