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;(file、position值在从机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