Mysql8.x版本主从加读写分离(一) mysql8.x主从_争取不加班!的博客-CSDN博客
Mycata需要使用jdk 单独一台服务器部署的mycat 192.168.11.143
手动上传jdk的包
tar zxvf jdk-8u121-linux-x64.tar.gz -C /usr/local/ 解压
cd /usr/local/
mv jdk1.8.0_121/ java
vim /etc/profile 配置环境变量
JAVA_HOME=/usr/local/java
PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile 刷新
java -version 看下版本
拉取mycat服务包
wget https://github.com/MyCATApache/Mycat-Server/releases/download/Mycat-server-1675-release/Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz
tar -xvf Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz -C /usr/local/ 解压
/usr/local/mycat/conf/server.xml 前端应用程序连接 mycat 的用户信息
/usr/local/mycat/conf/schema.xml 定义逻辑库,表、分片节点等内容
因为版本兼容问题首先要替换一下mycat的5.x的驱动
cd /usr/local/mycat/lib
rm -rf mysql-connector-java-5.1.35.jar
然后下载8.x的驱动
wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar
mv mysql-connector-java-8.0.18.jar /usr/local/mycat/lib 移动到对应目录
chmod 777 mysql-connector-java-8.0.18.jar 提权
然后进行对应配置修改
vim /usr/local/mycat/conf/server.xml
如有多个库可以多配置几个代码片段 106-109的配置此片段是配置连接mycat对应的配置
可以称作虚拟用户和虚拟库对应schema.xml 相应配置
vim /usr/local/mycat/conf/schema.xml
以下是配置文件中的每个部分的配置块儿
checkSQLschema="false" 不检查sql sqlMaxLimit="100" 最大连接数 dataNode="dn1" > 数据节点名称 数据节点 dataHost="localhost1" 主机组虚拟的 database="obr2022" /> 真实的数据库名称 主机组 maxCon="1000" minCon="10" 最大最新连接 balance="3" 负载均衡读写分离配置3即可 writeType="0" 写模式配置 dbType="mysql" dbDriver="native" 数据库配置 switchType="1" 当前节点不可用时自动切换节点 slaveThreshold="100"> 从节点支持线程数 心跳检测配置 writeHost host 写节点配置 readHost host 读节点配置 完整的配置截图 配置完了来到主数据库创建mycat用户 CREATE USER 'mycat'@'%' IDENTIFIED BY 'Zxcvbnm@2022'; GRANT ALL PRIVILEGES ON *.* TO mycat; flush privileges; 创建一个库以及表方便一会查看是否配置成功 create database obr2022; 创建一个库 create table obr (id int); 创建一个表 insert into obr values (1); 插入数据 启动mycat之前需要调整JVM添加一行配置 vim wrapper.conf wrapper.startup.timeout=300 超时时间300秒 /usr/local/mycat/bin/mycat start 启动mycat /usr/local/mycat/bin/mycat status 查看启动状态 配置完成后启动mycat登录 mysql -umycat -pZxcvbnm@2022 -P8066 -h192.168.11.143 --default-auth=mysql_native_password 因为mycat版本兼容问题都说登录要加这个参数--default-auth=mysql_native_password 然后查看一下mycat的库,这个库是server.xml里配置的虚拟库,实际对应的是schema.xml 配置里database="obr2022"真实库。 进入数据库查看一下表信息 访问和读取正常配置完成。 配置mysql8.x的读写分离遇到了很多问题上面配置完成后如果有问题看对应报错、 ERROR 1045 (HY000): Access denied for user 'mycat', because password is error 如果登录mycat用户提示密码错误的话指定一下mysql的密码验证插件 vim /etc/my.cnf 添加配置 default_authentication_plugin=mysql_native_password 或者直接修改mycat用户的密码策略登录mysql use mysql select host ,user ,plugin from user; 查看一下用户的密码策略我已经替换过了 alter user 'mycat'@'%' identified with mysql_native_password by 'Zxcvbnm@2022'; 把mycat的密码策略换成 mysql_native_password 还有一个错误是ERROR 1184 (HY000): Invalid DataSource:0 数据源无效 1.如果提示数据源无效的话看看配置的逻辑库是否正确 2.看看主节点mycat用户的权限可能是没权限 3.mycat用户的账号密码配置一定要细!