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

注释掉107-113行

8.配置schema.xml

vim /usr/local/mycat/conf/schema.xm

代码解释:

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)

相关推荐
木子欢儿9 小时前
Intel 架构的 MacBook Pro 运行 Linux 发热量高解决
linux·运维·服务器
凌虚9 小时前
面向 MySQL 用户的 PostgreSQL 快速上手指南
数据库·后端·架构
五阿哥永琪10 小时前
MySQL中操作json的函数!
数据库·mysql·json
来者皆善10 小时前
了解Mysql优化吗?如何优化索引?
数据库·mysql
都叫我大帅哥10 小时前
Java JJWT 完全指南:从入门到生产级实践
java
前端开发张小七11 小时前
Java 学习笔记 · 第一课:基础语法与核心概念
java·后端
ThsPool12 小时前
【ENVI二次开发学习整理 04】ENVI功能扩展与二次开发
java·前端·javascript
赤壁小虾12 小时前
【渲染流水线】[逐片元阶段]-[透明度测试]以UnityURP为例
java·前端·数据库
清水迎朝阳12 小时前
客户端软件 — 用户统计方案
服务器·c++·客户端·用户统计
MC皮蛋侠客12 小时前
SQLAlchemy 系列(七):高级建模与高效写入——批量 DML、方言与扩展
数据库·python