python非交互连接mysql+mycat读写分离实现

python非交互连接mysql

>>>import pymysql

>>>conn=pymysql.connect(host="192.168.118.57",port=3306,database="test",user="root",password="root")

>>> cursor=conn.cursor()

>>> cursor.execute("create user 'slave0'@'%' identified by 'slave0'")

0

>>> cursor.execute("grant replication slave on *.* to 'slave0'@'%'")

0

>>> cursor.execute("flush privileges")

0

>>> cursor.execute("flush tables with read lock")

0

>>> cursor.execute("unlock tables")

0

>>> cursor.execute("flush tables with read lock")

0

>>> cursor.execute("show master status")

1

>>> print(cursor.fetchall())

(('binlog.000001', 1024, '', '', ''),)

>>>

可以将上述的python连接mysql编写成脚本:

vim test.py

import pymysql

conn=pymysql.connect(host="192.168.118.57",port=3306,database="test",user="root",password="root");

cursor=conn.cursor()

cursor.execute("create user 'slave2'@'%' identified by 'slave2'")

cursor.execute("grant replication slave on *.* to 'slave2'@'%'")

cursor.execute("flush privileges")

cursor.execute("flush tables with read lock")

cursor.execute("show master status")

print(cursor.fetchall())

isOk=input("slave server ok? y/n")

if isOK=='y':

cursor.execute("unlock tables")

mycat读写分离实现

mycat:独属于mysql主从的负载均衡策略,配置写主读从

mycat是用java开发的

步骤:

1.添加一个新主机(192.168.118.70),关闭防火墙,selinux,NetworkManager

2.上传jdk和mycat安装包

3.解压并添加到指定的位置

224 tar -xf jdk-8u192-linux-x64.tar.gz

225 tar -xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz

226 cp -r jdk1.8.0_192/ /usr/local/jdk

227 cp -r mycat/ /usr/local/

4.查看并且配置jdk环境

229 ls /usr/local/jdk

230 sed -i '$aexport JAVA_HOME=/usr/local/jdk' /etc/profile

233 source /etc/profile

234 $JAVA_HOME

235 sed -i 'aexport PATH=PATH:$JAVA_HOME/bin' /etc/profile

236 source /etc/profile

237 $PATH

239 javac -version

root@allow \~\]# javac -version javac 1.8.0_192 5.测试启动mycat 240 ls /usr/local/mycat/ 241 ls /usr/local/mycat/bin 242 /usr/local/mycat/bin/mycat console 6.找到server.xml 和 schema.xml ls /usr/local/mycat/conf 7.配置server.xml vim /usr/local/mycat/conf/schema.xml ![](https://i-blog.csdnimg.cn/direct/83952d5940da43399fe2f2fc9f1ea632.png) 注释掉107-113行 8.配置schema.xml vim /usr/local/mycat/conf/schema.xm ![](https://i-blog.csdnimg.cn/direct/7fb1ab4f6fa9407e9c5a1f4301f30893.png) 代码解释: ![](https://i-blog.csdnimg.cn/direct/c1e826228b474225aaf504df96cb08db.png) 9.启动服务 / usr / local / mycat / bin / mycat start 10.检查启动是否成功 netstat -lnput \| grep 8066 tcp6 0 0 :::8066 :::\* LISTEN 3242/java 11.测试连接 \[root@master-mysql \~\]# mysql -h192.168.118.70 -P8066 -uwangjia -pwangjia mysql\> select \* from user; +----+----------+----------+ \| id \| username \| password \| +----+----------+----------+ \| 1 \| aaa \| aaa \| \| 2 \| bbb \| bbb \| +----+----------+----------+ 2 rows in set (0.05 sec) mysql\> show variables like 'server_id'; +---------------+-------+ \| Variable_name \| Value \| +---------------+-------+ \| server_id \| 15 \| +---------------+-------+ 1 row in set (0.01 sec)

相关推荐
小萌新上大分10 分钟前
java线程通信 生产者消费者,synchronized,,ReentrantLock,Condition(笔记备份)
java·多线程·lock·java线程间通信的方式·reentrantlock使用·生产者消费者问题java·java多线程与高并发
それども22 分钟前
Spring Bean 的name可以相同吗
java·后端·spring
墨雪不会编程25 分钟前
C++ string 详解:STL 字符串容器的使用技巧
java·开发语言·c++
Lucky GGBond26 分钟前
实践开发:老系统新增字段我是如何用枚举优雅兼容历史数据的
java
悲喜自渡72129 分钟前
Python 编程(gem5 )
java·linux·开发语言
曹牧29 分钟前
C#:记录日志
服务器·前端·c#
xing-xing1 小时前
JVM 内存、直接内存、系统内存、本地内存、物理内存总结
java·jvm
yangpipi-1 小时前
《C++并发编程实战》第5章 C++内存模型和原子操作
android·java·c++
运维行者_1 小时前
OPM 与传统管理工具的区别,在网络修复与自动化运维方面的优势在哪里?
运维·服务器·开发语言·网络·自动化·php·ssl
斯普信专业组2 小时前
PostgreSQL高可用集群部署与配置指南
数据库·postgresql