mysql5.6主从同步

安装环境:

centos6.5

mysql5.6.36(注意mysql在5.6之前和之后的安装方式不一样

服务器:192.168.1.1(master)

服务器:192.168.1.2(slave)

基本环境配置

将3306端口添加到防火墙例外并重启

#firewall-cmd --zone=public --add-port=3306/tcp --permanent

#firewall-cmd

然后ping一下两台服务器,确保两者相通


安装mysql:

检查系统是否安装过mysql或其依赖,若已安装先将其全部删除

#yum list install | grep mysql

#yum -y remove mysql-server.xxx

下载mysql

#wget dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm

安装rpm

#yum install mysql-community-release-el6-5.noarch.rpm

查看安装后的文件

#ls /etc/yum.repos.d

查看源是否可用

#yum repolist enable | grep mysql

安装mysql

#yum install mysql-community-server

启动mysql

#service mysqld start

查看mysql服务是否开机启动

#chkconfig --list | grep mysqld

设置开机启动

#chkconfig mysqld on

修改字符编码

#vi /etc/my.cnf

在[mysqld]下面添加

character-set-server=utf8

在文件末尾添加

[client]

default-character-set=utf8

重启服务

#service mysqld restart

进入mysql

#mysql -uroot -p

第一次密码为空,直接回车

修改root密码

mysql>use mysql;

mysql>update user set password=password('xxxxxx') where user='root';

刷新

mysql>flush privileges;

允许远程用户访问权限,两种方式:

①授权

mysql>grant all privileges on *.* to 'root'@'%' identified by 'pwd' with grant option;

mysql>flush privileges;

如果你想允许用户jack从ip为10.10.50.127的主机连接到mysql服务器,并使用123456作为密码

mysql>grant all privileges on *.* to 'jack'@'10.10.50.127' identified by '123456' with grant option;

mysql>flush privileges;

②改表

mysql>update user set host='%' where user='root';

mysql>flush privileges;

查询访问权限

mysql>select user,host from user;

如下图代表修改成功

+------+------------------+
| user | host             |
+------+------------------+
| root | %                |
| root | localhost        |
+------+------------------+

查看编码

mysql>show variables like "%character%";

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如上图,代表编码utf8设置成功



master的配置

修改mysql配置文件

#vi /etc/my.cnf

将如下配置加入到[mysqld]下面

log-bin=mysql-bin

server-id=1

binlog-do-db=test

binlog-ignore-db=mysql

binlog-ignore-db=performance_schema

binlog-ignore-db=information_schema

保存并退出

#:wq

重启mysql

#service mysqld restart

进入mysql,输入密码

#mysql -u root -p

赋予从库权限(如果你不想用root用户,可以自己设定)

mysql>grant file on *.* to 'root'@'192.168.1.2' identified by 'root密码';

mysql>grant replication slave on *.* to 'root'@'192.168.1.2' identified by 'root密码';

mysql>flush privileges;

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

mysql>show master status;

这里显示的file、position在配置slave要用到,binlog-do-db表示要同步的数据库,binlog-ignore-db表示不需要同步的数据库。

如果显示为empty set(0.00 sec),那说明前面的my.cnf没配置对。



slave的配置

修改mysql配置文件

#vi /etc/my.cnf

将如下配置加入到[mysqld]下面

log-bin=mysql-bin

server-id=2

binlog-do-db=test

binlog-ignore-db=mysql

binlog-ignore-db=performance_schema

binlog-ignore-db=information_schema

log-slave-updates

slave-skip-errors=all

slave-net-timeout=60

保存并退出

#:wq

重启mysql

#service mysqld restart

进入mysql,输入密码

#mysql -u root -p

赋予权限(如果你不想用root用户,可以自己设定)

mysql>stop slave;

mysql>change master to master_host='192.168.1.1',master_user='root',master_password='密码',master_log_file='mysql-bin.000001',master_log_pos=120;

mysql>start slave;

查看配置信息

mysql>show slave status \G;

如果看到了下面的内容代表配置成功

Slave_IO_Running:Yes

Slave_SQL_Running:Yes


测试同步

我们先在主库test里面加一个表加几条测试数据,再刷新从库test,能看到新加的表和数据,代表主从同步配置成功。

Guess you like

Origin blog.csdn.net/peter_qyq/article/details/72820119