Linux下面使用MySQL 基于MyCat的主从复制 读写分离
程序员文章站
2022-06-24 12:25:22
1.MySQL主从复制# 1.修改mysql的配置文件[root@localhost mysql]# vim /etc/my.cnf# 2.分别在配置文件中加入如下配置mysql(master):server-id=1log-bin=mysql-binlog-slave-updatesslave-skip-errors=allmsyql(slave):server-id=2log-bin=mysql-binlog-slave-updates...
1.MySQL主从复制
# 1.修改mysql的配置文件
[root@localhost mysql]# vim /etc/my.cnf
# 2.分别在配置文件中加入如下配置
mysql(master):
server-id=1
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
msyql(slave):
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
注意:两个机器的server-id不能一致
# 3.重启mysql服务
systemctl restart mysqld
# 4.登录mysql执行如下命令检测配置是否生效
SHOW VARIABLES like 'server_id';
#删除uuid
rm -rf /var/lib/mysql/auto.cnf
# 重启mysql服务
systemctl restart mysqld
# 5.登录master节点执行如下命令
show master status;
# 6.登录从节点执行如下命令:
change master to
master_host='192.168.17.150',
master_user='root',
master_password='root',
master_log_file='mysql-bin.000002',
master_log_pos=120;
# 7.开启从节点
start slave;
# 8.查看从节点状态
show slave status\G;
************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 10.15.0.9
Master_User: root
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000001
Read_Master_Log_Pos: 120
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 283
Relay_Master_Log_File: mysql-bin.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注意:
1.出现 Slave_IO_Running: Yes 和 Slave_SQL_Running: Yes 说名成功,
2.如果在搭建过程出现错误,可以查看查看错误日志文件 cat /var/log/mysqld.log
# 9.通过客户端工具进行测试
# 10.关闭主从复制(在从节点执行)
stop slave;
注意:如果出现Slave I/O: 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. Error_code: 1593错误,请执行如下命令,rm -rf /var/lib/mysql/auto.cnf删除这个文件,之所以出现会出现这样的问题,是因为我的从库主机是克隆的主库所在的主机,所以auto.cnf文件中保存的UUID会出现重复.
2.读写分离
2.1 MyCat引言
基于阿里开源的Cobar产品而研发,Cobar的稳定性、可靠性、优秀的架构和性能以及众多成熟的使用案例使得MYCAT一开始就拥有一个很好的起点,站在巨人的肩膀上,我们能看到更远。业界优秀的开源项目和创新思路被广泛融入到MYCAT的基因中,使得MYCAT在很多方面都领先于目前其他一些同类的开源项目,甚至超越某些商业产品。
MYCAT背后有一支强大的技术团队,其参与者都是5年以上资深软件工程师、架构师、DBA等,优秀的技术团队保证了MYCAT的产品质量。MYCAT并不依托于任何一个商业公司,因此不像某些开源项目,将一些重要的特性封闭在其商业产品中,使得开源项目成了一个摆设.
2.2 安装Mycat
# 1.下载mycat
http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
# 2.解压mycat
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
# 3.查看解压之后目录]
[root@localhost mycat]# ls
总用量 12
drwxr-xr-x. 2 root root 190 10月 14 22:58 bin
drwxrwxrwx. 2 root root 6 3月 1 2016 catlet
drwxrwxrwx. 4 root root 4096 10月 14 22:58 conf
drwxr-xr-x. 2 root root 4096 10月 14 22:58 lib
drwxrwxrwx. 2 root root 6 10月 28 2016 logs
-rwxrwxrwx. 1 root root 217 10月 28 2016 version.txt
# 4.移动到/usr目录
mv mycat/ /usr/
# 5.配置mycat中conf下的配置schema.xml
<!-- 定义MyCat的逻辑库 -->
<schema name="test_schema" checkSQLschema="false" sqlMaxLimit="100" dataNode="testNode"></schema>
<!-- 定义MyCat的数据节点 -->
<dataNode name="testNode" dataHost="dtHost" database="test" />
<dataHost name="dtHost" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!--写节点-->
<writeHost host="hostM1" url="192.168.28.128:3306" user="root"
password="root">
<!--从节点-->
<readHost host="hostS1" url="192.168.28.129:3306" user="root" password="root" />
</writeHost>
</dataHost>
# 6.配置登陆mycat的权限server.xml
<system>
<!-- 这里配置的都是一些系统属性,可以自己查看mycat文-->
<property name="defaultSqlParser">druidparser</property>
<property name="charset">utf8mb4</property>
</system>
<user name="root">
<property name="password">root</property>
<property name="schemas">test_schema</property>
</user>
# 7.启动mycat
mycat console
# 8.查看日志
tail -f ../logs/mycat.log
# 9.数据库连接配置,测试
本文地址:https://blog.csdn.net/weixin_45764675/article/details/107469786
推荐阅读
-
基于mycat配置MySQL读写分离的详细教程
-
Linux如何使用 MyCat 实现 MySQL 主从读写分离
-
Linux下面使用MySQL 基于MyCat的主从复制 读写分离
-
JAVAEE——宜立方商城13:Mycat数据库分片、主从复制、读写分离、100%Linux中成功安装Mysql的方法
-
mysql之使用centos7实现主从复制(读写分离)的实现过程
-
基于Gtid的mysql主从复制 和 mysql-proxy 读写分离
-
基于mycat配置MySQL读写分离的详细教程
-
Linux上实现Mysql的主从复制(为Mycat读写分离作准备)
-
基于主从复制的mysql的读写分离
-
基于Gtid的mysql主从复制 和 mysql-proxy 读写分离