一、环境
1.主服务器操作系统:Mac OS
MySQL版本:5.1.6
2.从服务器操作系统:Centos 6.5
MySQL版本:5.1.6
二、实战
2.1MySQL主从复制,读写分离示意图
MySQL 复制的工作方式很简单,一台服务器作为主机,一台或多台服务器作为从机。主机会把数据库的变化记录到日志。一旦这些变化被记录到日志,就会立刻(或者以设定的时间间隔)被送到从机。
2.2 主服务器IP:172.16.151.1
从服务器IP:172.16.151.130
在两台服务器分别安装好MySQL
2.3 修改主服务器的MySql配置文件,Mac默认在 /etc/my.cnf下,加入如下配置
官方说明:为了使用事务的InnoDB在复制中最大的持久性和一致性,你应该指定innodb_flush_log_at_trx_commit=1,sync_binlog=1选项。)
[mysqld]
log-bin=mysql-bin
#slave会基于此log-bin来做replication
server-
id
=1
#master的标示,1表示master
innodb_flush_log_at_trx_commit=1
sync_binlog=1
|
2.4 在主服务器创建一个数据库用户账号,用于从服务器读取bin_log
grant replication slave on *.* to copy_user@172.16.151.130 identified by
'copy_pwd'
|
2.5 启动主服务器
sudo
mysqld_safe
|
2.6 登录主服务器Mysql,进入test数据库,查看master状态
mysql -u root
mysql> use
test
;
mysql> show master status;
|
2.7 登录从服务器(Centos 6.5),修改mysql配置文件 ,加入一行配置
[mysqld]
server-
id
=2
#标示从服务器
|
2.8 重启从服务器的Mysql
sudo
mysqld_safe --defaults-
file
=
/home/card/my
.cnf
#如果不想使用默认my.cnf文件,可以使用指定目录下的my.cnf文件
|
2.9 登录到mysql,停止slave,配置master数据库的信息,然后启动slave
注意:以下参数
master_host:主服务器IP地址
master_user:主服务器创建的用于同步数据的用户
master_password:主服务器创建的用于同步数据的用户密码
master_log_file:在主服务器里,通过show master status里显示的File的内容
master_log_pos:在主服务器里,通过show master status里显示的Position的内容
mysql -u root
mysql> use
test
;
mysql> slave stop;
mysql> change master to master_host=
'172.16.151.1'
,master_user=
'copy_user'
,master_password=
'copy_pwd'
,master_log_file=
'mysql-bin.000006'
,master_log_pos=617;
mysql> start slave;
mysql> show slave status\G;
|
如果出现下面的情况,说明主从同步已经成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
经过以上步骤,然后你在主服务器里创建一张表,插入一条数据,再进入到从服务器看一下,会发现表和数据都已经同步过来了。
<本节完>