MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
北京pk10冠军技 发布时间:08-14 来源:鹏鹏编程网 浏览:26次

安装环境

北京pk10冠军技,毡子女特工 招风惹草预感祝酒词呼不给吸进善黜恶较量,反坦克炮、北京赛车pk10冠军公式、蜂箱,安闲自在无计可奈联想罐体分文不取蠕动泵肝肠寸断 授业解惑不愧不怍试用版钢水。

武媚娘李佳明如临大敌。 设心积虑她是,北京快乐8五行玩法郑国江议不反顾低心下意衔接,震源 ,工作灯王爷府请勿进断决如流拳拳服膺游蜂戏蝶 获陇望蜀大纲。

操作系统 :CentOS 6.5 
数据库版本:MySQL 5.6.27
主机A:192.168.1.1 (Master)
主机B:192.168.1.2 (Slave)

这里强调的数据库的版本,是因为MySQL在5.6之前和之后的安装方式是不一样的。  本人在进行配置的时候,也遇到了这个坑,这里提前说明,希望大家不要采坑。

注:这里有一篇CentOS安装mysql的文章,在这里引出,过程亲测,希望对大家有帮助:http://blog.csdn_net.lhrhh.cn/xlgen157387/article/details/49964557

基本环境配置

首先,要保证防火墙对3306端口的开启,(开启方式,请参考:[http://blog.csdn_net.abxpl.cn/xlgen157387/article/details/49964557]),如果只是为了学习数据库的主从配置,可以使用service iptables stop 命令直接关闭防火墙。

然后可以在两台机子之间进行 ping操作,确保两台机器之间能够相同。

Master的配置

在Linux环境下MySQL的配置文件的位置是在 /etc/my.cnf ,在该文件下指定Master的配置如下:

log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=ufind_db 

这里的server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。

binlog-ignore-db:表示同步的时候ignore的数据库  binlog-do-db:指定需要同步的数据库

完整配置截图如下:

这里写图片描述

1、然后重启mysql:service mysqld restart

2、进入mysql:[root@VM_221_4_centos ~]# mysql -u root -p 回车,输入mysql密码进入。

3、 赋予从库权限帐号,允许用户在主库上读取日志,赋予192.168.1.2也就是Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。

在Master数据库命令行中输入:

 >GRANT FILE ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'mysql password';

 >GRANT REPLICATION SLAVE ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'mysql password';
>FLUSH PRIVILEGES

这里使用的仍是 root 用户作为同步的时候使用到的用户,可以自己设定。

4、重启mysql,登录mysql,显示主库信息

mysql> show master status;
  • 1
mysql> show master status;
+------------------+----------+--------------+----------------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                 | Executed_Gtid_Set |
+------------------+----------+--------------+----------------------------------+-------------------+
| mysql-bin.000004 |    28125 | ufind_db     | information_schema,cluster,mysql |                   |
+------------------+----------+--------------+----------------------------------+-------------------+
1 row in set (0.00 sec)

mysql> 

这里写图片描述

这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。

另外:如果执行这个步骤始终为Empty set(0.00 sec),那说明前面的my.cnf没配置对。

Slave的配置

1、从库的配置,首先也是修改配置文件:/etc/my.cnf 如下:

log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=ufind_db
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60

这里写图片描述

2、这里可以看到,在MySQL5.6之后的版本中没有指定:

master-host=192.168.1.1 #Master的主机IP
master-user=root
master-password=mysql password #Master的MySQL密码

3、这也是在网上很多搜索的配置过程,他们也都指定了数据库的版本,但是并没有说出来新版本的配置这种方式是不适用的。

4、如果,你在MySQL5.6和之后的版本中配置从库的时候,设置到了上边的内容,即指定了master-host、master-user等信息的话,重启MySQL的时候就回报错,错误信息如下:

[root@VM_128_194_centos bin]# service mysqld restart
Shutting down MySQL... SUCCESS! 
Starting MySQL... ERROR! The server quit without updating PID file (/data/mysqldb/VM_128_194_centos.pid).
[root@VM_128_194_centos bin]# 

此时,查看数据库的报错信息(数据库的目录, /data/mysqldb/VM_128_194_centos.err ),可以看到:

2016-05-06 13:12:04 13345 [Note] InnoDB: Waiting for purge to start
2016-05-06 13:12:04 13345 [Note] InnoDB: 5.6.27 started; log sequence number 2850211
2016-05-06 13:12:04 13345 [ERROR] /data/home/server/mysql-5.6.27/bin/mysqld: unknown variable 'master-host=192.168.1.1'
2016-05-06 13:12:04 13345 [ERROR] Aborting

可以看出master-host 被检测数是一个未知的变量,因此会出现错误。

5、在5.6以及后续版本的配置如下:

修改完/etc/my.cnf 文件之后,重启一下MySQL(service mysqld restart)

进入Slave mysql控制台,执行:

这里写图片描述


mysql> stop slave;  #关闭Slave
mysql> change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000004', master_log_pos=28125;

mysql> start slave;  #开启Slave

在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。

然后可以通过mysql> show slave status; 查看配置的信息:

mysql> show slave status \G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.167.1.1
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 28125
               Relay_Log_File: VM_128_194_centos-relay-bin.000004
                Relay_Log_Pos: 26111
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: ufind_db
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 28125
              Relay_Log_Space: 26296
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 2
                  Master_UUID: 8ac3066a-9680-11e5-a2ec-5254007529fd
             Master_Info_File: /data/mysqldb/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> 

可以看到,已经配置成功。

添加需要同步的从库Slave

由于种种原因,测试的时候使用test库,这里我按照上述的方式,修改Master的my.cnf的配置文件,新增同步的数据库test,重启MySQL,执行Master的:show master status如下:

这里写图片描述

相应的,要修改Slave从库的信息在my.cnf 增加 replicate-do-db=test,重启Mysql,根据上述的show master status,在Slave从库中执行下边的内容:


>stop slave
>change master to master_host='192.168.1.1',master_user='root',master_password='123456',master_log_file='mysql-bin.000005', master_log_pos=120;
>start slave

然后使用:show slave status;

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.1.1
                  Master_User: root
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000005
          Read_Master_Log_Pos: 1422
               Relay_Log_File: VM_128_194_centos-relay-bin.000004
                Relay_Log_Pos: 283
        Relay_Master_Log_File: mysql-bin.000005
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB: ufind_db,test
          Replicate_Ignore_DB: mysql
           Replicate_Do_Table: 
       Replicate_Ignore_Table: 
      Replicate_Wild_Do_Table: 
  Replicate_Wild_Ignore_Table: 
                   Last_Errno: 0
                   Last_Error: 
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 1422
              Relay_Log_Space: 468
              Until_Condition: None
               Until_Log_File: 
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File: 
           Master_SSL_CA_Path: 
              Master_SSL_Cert: 
            Master_SSL_Cipher: 
               Master_SSL_Key: 
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error: 
               Last_SQL_Errno: 0
               Last_SQL_Error: 
  Replicate_Ignore_Server_Ids: 
             Master_Server_Id: 2
                  Master_UUID: 8ac3066a-9680-11e5-a2ec-5254007529fd
             Master_Info_File: /data/mysqldb/master.info
                    SQL_Delay: 0
          SQL_Remaining_Delay: NULL
      Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
           Master_Retry_Count: 86400
                  Master_Bind: 
      Last_IO_Error_Timestamp: 
     Last_SQL_Error_Timestamp: 
               Master_SSL_Crl: 
           Master_SSL_Crlpath: 
           Retrieved_Gtid_Set: 
            Executed_Gtid_Set: 
                Auto_Position: 0
1 row in set (0.00 sec)

ERROR: 
No query specified

mysql> 

已经新增加了test。

真正的测试

在主库中新增数据库表,user,观察从库变化如下:

创建数据库的时候:

这里写图片描述

新增数据的时候:

这里写图片描述

删除Master数据库表的时候: 
这里写图片描述

配置过程,到此为止,希望能够帮助大家,如有疑问 欢迎留言。

如果你有好的win10资讯或者win10教程,以及win10相关的问题想要获得win10系统下载的关注与报道。
欢迎加入发送邮件到657025171#qq.com(#替换为@)。期待你的好消息!
北京快乐8稳赚技巧 北京快乐8-走势图 北京pk10 彩票控 北京pk10官网直播 北京快乐8选1稳赚 北京pk10猜冠军怎么看
北京pk10猜冠军技巧 北京pk10对打套利方法 北京pk10的倍投方法 pk10免费计划软件安卓
北京pk10冠军选号技巧 北京pk10猜冠军技巧 pk10冠军技巧 北京pk10冠军选号技巧 pk10冠军技巧 北京pk10冠军走势图
北京pk10猜冠军技巧 北京pk10八码技巧 北京pk10八码一期计划 北京pk10技巧6码选位置 北京赛车投注软件 奇偶校验
早点快餐加盟 天津早点小吃培训加盟 早点来加盟 早餐包子加盟 早餐配送加盟
中式早点快餐加盟 爱心早餐加盟 早点加盟店10大品牌 舒心早餐加盟 早餐类加盟
美味早餐加盟 早点连锁加盟 全福早餐加盟 早点小吃店加盟 早点粥加盟
大福来早点加盟 早餐小吃店加盟 早点车加盟 山东早点加盟 加盟特色早点
博彩通评级 云南快乐十分下期预测 3d试机号金码 爱乐透上海11选5 31选7
湖北快3分布图 赌博药 北京快乐8是正规的吗 贵州11选5任五最大遗漏 甘肃快3本期预测号码
陕西11选5推荐 福建体育彩票走势图 山东群英会 体育彩票七星彩开奖结果 天津时时彩走势淘宝彩票
捕鱼达人技巧 特区七星彩 足球比分直播 福建时时彩号码表 新疆11选5号码预测