MySQL5.6 数据库主从(Master/Slave)同步安装与配置详解
注意:MySQL 5.6版本和之前版本的配置不同,本文针对5.6以及更高版本.
安装环境
操作系统:Windows7
Master和Slave都在同一台电脑上
基本环境配置
配置主库Master
1.将压缩版的mysql解压到C:\Program Files\MySQL目录下,目录名称更改为mysql-5.6.20-3306
2.将my-default.ini文件重命名为my.ini
3.配置如下3个参数
basedir = C:\Program Files\MySQL\mysql-5.6.20-3306
datadir = C:\Program Files\MySQL\mysql-5.6.20-3306\data
port = 3306
4.进入bin目录,按下Shift键的同时,右击鼠标,从右键菜单中选择"从此处打开命令窗口",在窗口中输入:
mysqld -install mysql_3306
通过上述3步,占用3306端口的mysql服务即可创建完毕,启动该服务即可(net start mysql_3307).
配置从库Slave
1.将压缩版的mysql解压到C:\Program Files\MySQL目录下,目录名称更改为mysql-5.6.20-3307
2.将my-default.ini文件重命名为my.ini
3.配置如下3个参数
basedir = C:\Program Files\MySQL\mysql-5.6.20-3307
datadir = C:\Program Files\MySQL\mysql-5.6.20-3306\data
port = 3307
4.进入bin目录,按下Shift键的同时,右击鼠标,从右键菜单中选择"从此处打开命令窗口",在窗口中输入:
mysqld -install mysql_3307
通过上述3步,占用3306端口的mysql服务即可创建完毕,启动该服务即可(net start mysql_3307).
Master的配置
修改my.ini文件
log-bin=mysql-bin
server-id=2
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
binlog-do-db=shoppingdb
这里的server-id用于标识唯一的数据库,这里设置为2,在设置从库的时候就需要设置为其他值。
binlog-ignore-db:表示同步的时候ignore的数据库
binlog-do-db:指定需要同步的数据库
1、然后重启mysql_3306服务
2、登录数据库服务器。
3、 赋予从库权限帐号,允许用户在主库上读取日志,赋予Slave机器有File权限,只赋予Slave机器有File权限还不行,还要给它REPLICATION SLAVE的权限才可以。
在Master数据库命令行中输入:
GRANT FILE ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE ON *.* TO 'root'@'%' IDENTIFIED BY '123456';
注意: 'root'@'%' root代表登录数据库的用户名,%代表所有计算机.该参数也可以写成从库客户机的IP,比如从库所在的计算机IP为192.168.1.23,则可以写为: 'root'@'192.168.1.23'
4、重启mysql,登录mysql,显示主库信息
show master status;
这里的 File 、Position 是在配置Salve的时候要使用到的,Binlog_Do_DB表示要同步的数据库,Binlog_Ignore_DB 表示Ignore的数据库,这些都是在配置的时候进行指定的。
Slave的配置
修改从库的my.ini
log-bin=mysql-bin
server-id=3
binlog-ignore-db=information_schema
binlog-ignore-db=cluster
binlog-ignore-db=mysql
replicate-do-db=shoppingdb
replicate-ignore-db=mysql
log-slave-updates
slave-skip-errors=all
slave-net-timeout=60
重启从库的mysql服务
重新登录从库
STOP SLAVE;
CHANGE MASTER TO MASTER_HOST='127.0.0.1',
MASTER_USER='root',MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=120;
START SLAVE;
在这里指定Master的信息,master_log_file是在配置Master的时候的File选项, master_log_pos是在配置Master的Position 选项,这里要进行对应。
然后可以通过mysql> show slave status;
查看配置的信息:
show slave status;
*************************** 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
注意,如果看到上述信息,表示成功.
请特别注意Slave_IO_Running和Slave_SQL_Running的值一定要是Yes.
真正的测试
在主库分别执行创建数据表\新增数据\修改数据\删除数据\删除数据表等一系列的操作,每次执行一项去从库中执行查看,看从库是否做到的同步.
相关推荐
一、前言随着应用业务数据不断的增大,应用的响应速度不断下降,在检测过程中我们不难发现大多数的请求都是查询操作。此时,我们可以将数据库扩展成主从复制模式,将读操作
我感觉很不错的技术文档,现在和大家分享,希望能够帮到大家,如果你需要可以下载看看,很适合喜欢研究技术的人员
如何实现MySQL的主从复制和半同步复制对普通用户来说可能比较难懂,但只要您接触了MYSQL,就没理由不去学。
一、什么是主从复制 将主数据库中的DDL和DML操作通过二进制日志(BINLOG)传输到从数据库上,然后将这些日志重新执行(重做);从而使得从数据库的数据与主数据库保持一致。 二、主从复制的作用 1、主数据库出现...
(what)什么是mysql 的主从复制? 指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。对于多级复制,数据库服务器即可充当主机,也可充当从机...
mysql主从复制+lvs与keepalived实现负载高可用
MySQL主从复制+lvs与keepalived实现负载高可用
Spring AOP 实现读写分离(MySQL实现主从复制)-附件资源
MySQL数据库主从复制的实现.pdf
Mysql服务器主从复制主主+keepalived实现Mysql故障自动切换.doc
使用keepalived实现对mysql主从复制的主备自动切换.docx
Red Hat6.4上mysql5.6主从复制配置文档 MySQL数据库服务器Master和slave,Master为主服务器,slave为从服务器.实现主从备份。
MySQL主从复制部署实施文档
1.配置2台MySQL服务器,实现 主-->从 同步。 2.其中Master服务器允许SQL查询、写入,Slave服务器只允许SQL查询
实现mysql数据库中的主从复制,可以实现数据库的冗余。
Windows环境下,安装MySQL多实例,并实现Mysql的主从同步
.基于Mycat的MySQL主从复制读写分离docker实现.