CentOS 7下mysql主从同步配置

MySQL安装

安装方法1:

 

1、wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm (wget没有就执行以下yum -y install wget)
2、rpm -ivh mysql-community-release-el7-5.noarch.rpm(名字要相同)
3、yum -y install mysql mysql-server mysql-devel
4、开启服务:service mysqld start
5、进入客户端密码默认空,回车即可:mysql -u root -p
linux创建用户赋权、客户端连接
#创建用户 用户名:user 所有主机:% 密码:123456
CREATE USER 'user'@'%' IDENTIFIED BY '123456';
#给该用户设置密码
update mysql.user set authentication_string=password("123456") where user="user";
#赋权所有数据库 *.*
grant all privileges on *.* to user@'%' identified by '123456';
#查询用户,可能需要再一次设置密码
select host,user,authentication_string from mysql.user;
#然后须要运行刷新权限的命令:
flush privileges;
linux-MySQL-yum文件卸载流程步骤(yum 安装的残留)
rpm -qa | grep -i
sudo yum -y remove mysql80-community-release-el7-1.noarch(和安装的版本一致)

-------------------------

方法2:https://www.jianshu.com/p/276d59cbc529

还没尝试

 

Centos7下MySQL主从同步配置

前置条件主机mysql版本和从机mysql版本相同或者低
一、环境
主机: master操作系统:centos 7 64位 IP:192.168.66.129  MySQL版本:5.6.45
从机: slave操作系统:   centos 7 64位 IP:192.168.66.128  MySQL版本:5.6.45

二、创建数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database test;

三、相关配置
1、主机: vi /ect/my.cnf
在[mysqld]配置段添加如下字段
server-id=129 #唯一
log_bin=mysql-bin
log-slave-updates=1
binlog-do-db=test  #需要同步的数据库,如果没有本行表示同步所有的数据库
binlog-ignore-db=mysql #被忽略的数据

在master机上为slave机添加一同步帐号:user 密码:123456
进入mysql:mysql -u root -p
  grant replication slave on *.* to 'user'@'192.168.66.128' identified by '123456';
  flush privileges;
在目录下重启服务:crtl+c
  service mysqld restart
进入mysql查看日志情况:mysql -u root -p
  show master status;(fileposition值在从机slave中需要使用)

2、从机: vi /ect/my.cnf
同样在[mysqld]字段下添加如下内容
server-id=128 #唯一
log_bin= mysql-bin
relay-log= mysql-relay-bin
read-only=1 #限制普通用户对从数据可的更新操作
log-slave-updates=1
replicate-do-db=test #要同步的数据库,不写本行表示同步所有数据库

在目录下重启服务:crtl+c
service mysqld restart
验证对接主机连接
mysql -h192.168.66.129 -uuser-p123456(连接不上的一般是因为主机没有开放用户权限、防火墙、服务没开等问题)
show grants for repl@192.168.66.128(查看用户在这个主机上有没有授权,貌似error也没关系)

返回目录进入自己的mysql设置slave复制(以下全部一起,不要断开)
CHANGE MASTER TO
MASTER_HOST='192.168.66.129',
MASTER_USER='repl', #用户
MASTER_PASSWORD='123456', #密码
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000001', #file
MASTER_LOG_POS=245, #postion
MASTER_CONNECT_RETRY=10;

进入mysql查看日志情况:mysql -u root -p
show master status;
启动slave
start slave;

从机show slave status;查看输出结果:主要查看Slave_IO_Running和Slave_SQL_Running 两列是否都为YES

最后测试同步:主机添加表添加数据,从机都同步存在则配置成功

问题排除:
1、slave复制配置错误主机,可以reset salve all;即可
2、错误处理:
Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
解决方法:
删除/var/lib/mysql/auto.cnf文件,重新启动服务。

四、安装mycat配置读写分离(http://dl.mycat.io/(下载mycat、zookeeper、mycat-web))

1、解压  

2、修改配置文件 schema.xml和server.xml

 schema.xml:(针对读写分离配置,其他多余可以删除)

(逻辑库名称:TESTDB   database 是MySQL数据库的库名:test)

<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>

<dataNode name="dn1" dataHost="localhost1" database="test" />

<!-- 可以配置多个主从 -->
<writeHost host="hostM1" url="主库IP:3306" user="user" password="123456">
<!-- 可以配置多个从库 -->
<readHost host="hostS2" url="从库IP:3306" user="user" password="123456" />
</writeHost>
server.xml:原始的配置即可,也可以修改连接的用户

3、进入mycat/bin启动:./mycat start

4、验证:mysql -uuser -p123456 -h127.0.0.1 -P8066 TESTDB

mysql>show databases;

mysql>show tables;

mysql>show user;

-----------------------------------------------选择数据库表简单操作成功即完成!

5、安装zookpeer(对应的mycat的server.xml需要开放zookpeer)

a、解压   b、修改conf下的cp zoo_sample.cfg zoo.cfg(也可以ftp直接改) 

c、修改zookeeper地址:cd /usr/local/mycat-web/mycat-web/WEB-INF/classes  编辑:vim mycat.properties

  zookeeper=127.0.0.1:2181

e、进入bin启动:./zkServer.sh start

6、安装mycat-web(前置JDK1.7+)

a、解压  b、进入bin启动:start.sh  c、访问:http://IP:8082/mycat/

注意:先启动zookpeeper然后启动mycat-web

7、验证,缺一不可

netstat -ntpl |grep 8082    

netstat -ntpl |grep 2181

 8、mycat-web配置管理

管理端口9066,服务端口8066

 

posted on 2019-07-30 15:42  fuanfei  阅读(115)  评论(0编辑  收藏  举报