首页 > 数据库 > MySQL > 正文

MySQL5.6 Replication主从复制(读写分离) 配置完整版

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

MySQL5.6主从复制(读写分离)教程

1、MySQL5.6开始主从复制有两种方式:

基于日志(binlog);
基于GTID(全局事务标示符)。

需要注意的是:GTID方式不支持临时表!所以如果你的业务系统要用到临时表的话就不要考虑这种方式了,至少目前最新版本MySQL5.6.12的GTID复制还是不支持临时表的。

所以本教程主要是告诉大家如何通过日志(binlog)方式做主从复制!

2、MySQL官方提供的MySQL Replication教程:

http://dev.mysql.com/doc/refman/5.6/en/replication.html

第一步:准备工作

主服务器: 192.168.1.100
从服务器: 192.168.1.101

MySQL软件版本:

MySQL-server-advanced-5.6.18-1.el6.x86_64.rpm
MySQL-cient-advanced-5.6.18-1.el6.x86_64.rpm

第二步:在主服务器和从服务器上安装MySQL数据库软件

安装方法,请参见 //www.Vevb.com/article/82542.htm

MySQL数据库软件安装完成后,不要急着做mysql启动操作。建议把mysql初始化生成的/usr/my.cnf
(如果是从源文件编译安装时,路径应该是在/usr/local/mysql/mysql.cnf)删除,然后把优化好的mysql
配置文件my.cnf放到/etc下。
第三步:修改主数据库的配置文件/usr/my.cnf

复制代码 代码如下:

[mysqld]
 
server-id=1
log-bin=mysqlmaster-bin.log
sync_binlog=1

innodb_buffer_pool_size=512M
innodb_flush_log_at_trx_commit=1
 
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
 
lower_case_table_names=1
log_bin_trust_function_creators=1

第四步:修改从数据库配置文件/usr/my.cnf
 

复制代码 代码如下:

server-id=2
log-bin=mysqlslave-bin.log
sync_binlog=1
innodb_buffer_pool_size=512M
innodb_flush_log_at_trx_commit=1
 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
lower_case_table_names=1
log_bin_trust_function_creators=1

第五步:在主数据库和从数据库服务器上分别执行以下命令重新启动主数据库和从数据库

复制代码 代码如下:

[root@master ~]# service mysql restart
[root@slave ~]# service mysql restart

第六步:在主数据库上创建用于主从复制的账户

复制代码 代码如下:

[root@master ~]# mysql -uroot -p
mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101' IDENTIFIED BY '111111';
Query OK, 0 rows affected (0.00 sec)

注意:以上命令中的IP地址,是从数据库服务器的IP地址。

第七步:主数据库锁表(禁止再插入数据以获取主数据库的的二进制日志坐标)
mysql> flush tables with read lock;
Query OK, 0 rows affected (0.00 sec)

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