Mysql主从复制

Mysql主从复制

部署环境:

系统环境CentOS release 6.5_x64

主mysql服务器ip:172.18.49.10

从mysql服务器ip:172.18.49.2

开始部署安装:

Mysql服务器都已经搭建完成。

mysql上

# cp  /etc/my.cnf  /etc/my.cnf.bak

# vi /etc/my.cnf

log_bin=mysql-bin     //开启二进制日志

server_id=1 //server_id 的值主从必须不同

# service mysqld restart

登录mysql进行授权:

mysql> grant all on *.* to 'replication'@'%' identified by 'replication';

mysql> flush privileges;

解释:在master的数据库服务器中建立一个复制的账户,每个slave使用该账户链接master来进行复制,设置所有权限(根据具体情况自定)。上面创建了一个replication用户,密码replication。只允许在所有段ip地址的登录。

 

查看master的状态:

# mysql -uroot -p

mysql> show master status;

 

记住file和position的值,配置slave的时候需要用。

mysql上配置

修改配置文件

# vi /etc/my.cnf

server_id = 2 //修改server_id,其值必须和master的不同。

relay_log=relay-logs //开启中继日志,可以自定义目录,mysql用户有权限即可

# service mysqld restart

# mysql -uroot –p

查看中继日志的启动状态:

mysql> show global variables like '%relay%';

 

连接master服务器:

mysql> change master to master_host='172.18.49.10',master_user='replication',master_password='replication',master_log_file='master-bin.000003',master_log_pos=284;

选项解释:

master_host:Master 服务器IP

master_user:Master 服务器授权用户,也就是 Master 前面创建的那个用户

master_password:Master 服务器授权用户对应的密码

master_log_file:Master binlog 文件名

master_log_pos:Master binlog 文件中的 Postion 值

手动启动复制线程:

mysql> start slave;

 

 

如果 Last_SQL_Error 没有错误提示以及 Salve 中的 Exec_Master_Log_Pos 值和 Master 中的 show master status; 中的 Postition 值是一样的,这样的话,MySQL 主从复制应该是成功的。

测试

master上:

mysql> use test;

mysql> create table users(id int(10),name varchar(48),sex char(16));

mysql> insert into users values(1,'qq','nan');

mysql> flush privileges;

 

在slave上:

mysql> use test;

 

,主从复制OK!!!

posted on 2019-09-28 10:49  快乐的人啊  阅读(61)  评论(0编辑  收藏  举报

导航