python连接mysql

Mysql Fabric实现学习笔记

↘锁芯ラ 提交于 2019-12-20 16:37:40
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> Mysql Fabric用来管理mysql服务,提供扩展性和容易使用的系统,管理mysql分片和高可用部署(当前实现了两个特性:高可用和使用数据分片的横向扩展,能单独使用或结合使用这两个特性。)。 架构图: 应用请求一个扩展的mysql连接器版本,使用XML-RPC协议访问Fabric,当前可以使用python和J连接器。Fabric管理启动 GTIDs(全局事务标识) 的mysql集合,检查和维护服务器之间的一致性。集合中的服务器叫高可用组。不属于Fabric高可用组的成员实例,叫备用存储(backing store)。 Fabric组织服务器在一个组(叫高可用组),管理不同分片或简单提供高可用。例如如果使用标准异步复制,Fabric可以配置自动监控mysql服务状态。如果组中当前master错误,组中有一个服务器能变成master,它选择一个新的服务器做为master。 除了高可用操作如故障转移和切换,Fabric也允许分片操作,如分片创建和移除。 高可用和数据分片在两个层实现: 1、mysqlfabric进程处理任何管理请求,接收通过mysqlfabric命令行接口或其他支持XML/RPC接口的进程的管理任务。当使用HA特性,该进程能监控master服务器,当master故障时能进行故障恢复

MMM+Amoeba搭建MySQL高可用负载均衡群集

半世苍凉 提交于 2019-12-18 17:45:17
MySQL的主从复制和MySQL的读写分离两者有着紧密联系,首先要部署主从复制,只有主从复制完成了,才能在此基础上进行数据的读写分离。MySQL的读写分离就是只在主服务器上写,只在从服务器上读。基本原理就是让主数据库处理事务性查询,而从服务器处理select查询。数据库复制被用来事务性查询导致的变更同步到群集中的从数据库。 Amoeba主要为应用层访问MySQL时充当sql路由,并具有负载均衡、高可用性、SQL过滤、读写分离、可路由相关到目标数据库、可并发请求多台数据库。通过Amoeba能够完成数据源的高可用、负载均衡和数据切片等功能。 MMM(MySQL主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM使用Perl语言开发,主要用来监控和管理MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许对一个主进行写入,另一台备选主上提供部分读服务,以加速在主主切换时备选主的预热,可以说MMM这套脚本程序一方面实现了故障切换的功能,另一方面其内部附加的工具脚本也可以实现多个Slave的read负载均衡。 amooeba在实际使用中存在单点故障的问题,所以在学习了MMMM之后,我就尝试了使用mmm+amoeba的架构来避免主库的单点故障,接下来我就为大家在虚拟机上模拟服务的搭建过程 项目环境 使用六台服务器模拟搭建,拓扑图如下:

Django MySQL 数据库连接

北战南征 提交于 2019-12-18 15:30:47
Django 1.11 官方文档 常规说明 数据库连接 CONN_MAX_AGE 定义数据库连接时限(ALL) default:0 保存在每个请求结束时关闭数据库连接的历史行为。 None:保持长连接 Other:xx 单位秒 连接管理 Django连接发生在每次请求时,如果没有可用连接便主动建立连接,如果限制了连接时间的话。 警告 每个线程包含自己的数据库连接,数据库必须支持至少和工作线程一样多的同步连接; 有时出现大多数视图无法访问数据库,此时应当试图减少数据库保持连接时间,这样不会有意地维护连接,同时有助于减少数据库同步连接数; 开发服务器会为每个处理的连接创立新的线程,会使长连接失效; 当Django建立一个连接时会设置适当的参数(取决于被使用的后端),如果使能长连接,这些设置便不会在每个请求重复设置,但是如果你定义了比如连接隔离或时区,就应在每次连接断开后还原默认配置,强制写入适当的值或者禁用长连接。 编码 Django 默认假设所有数据库均采用UTF-8编码。 MySQL连接说明 版本说明 支持MySQL 5.5+,期望数据库支持UTF-8编码和事务和参照完整性。 数据库存储引擎 推荐引擎---InnoDB MySQL数据库API驱动 MySQLdb 原生驱动已被开发支持超过10年(不支持Python3); mysqlclient MySQLdb的衍生

Linux 下 Mariadb 配置用法

这一生的挚爱 提交于 2019-12-18 08:18:18
Mariadb Mysql 的配置使用 CentOS 7 Mariadb 的学习 在linux上安装软件的方式 yum安装 在线搜索rpm格式的软件包,进行自动的依赖关系处理,下载,安装 ​ (阿里云的yum仓库,里面的软件都是阿里云运维工程师定义的) yum install mysql -y 手动rpm包安装 ,需要手动解决N个软件依赖 -rpm -ivh mysqlxx.rpm 源码编译安装(这种方式是企业应用最多的) ​ (可以自定制软件的版本,以及可以最优先的使用最新版本软件) yum源的配置 (mysql的 yum 源) 位置: cd /etc/yum.repos.d/ 在线下载阿里云的 yum 仓库,以及epel仓库 ​ CentOS-Base.repo epel.repo 安装mysql的方式 yum install mysql-server mysql -y 安装mysql的方式也有2种,阿里云官方提供的mariadb软件包,版本可能太低,但是下载网速很快,方便学习使用 在企业里面,多半不会使用阿里云的mariadb版本,因为版本太低,安全性太低,公司会配置myariadb官方的yum仓库. 手动创建mariadb的仓库文件 touch Mariadb.repo 写入配置信息 [mariadb] name = MariaDB baseurl = http://yum

python之pymysql模块(mysql数据库操作)

半世苍凉 提交于 2019-12-18 04:30:25
import pymysql # 连接数据库 conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='12345678', db='test') # 游标默认返回元组 # cursor = conn.cursor() # 游标设置为字典,fetch返回字典格式 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行sql cursor.execute("insert into account (username,password) values ('a','a')") # 让改动更新到数据库 conn.commit() # 获取数据 cursor.execute("select * from account") data = cursor.fetchall() print('移动前',data) # 移动游标 cursor.scroll(0,'absolute') # 绝对位置 # cursor.scroll(1,'relative') 相对位置 data2 = cursor.fetchall() print('移动后',data2) # 获取自增id cursor.execute("insert into account

MySQL入门

大城市里の小女人 提交于 2019-12-17 22:37:23
目录 1. 数据库的介绍 2. 数据库的类型 关系型数据库核心元素 3. MySQL的基本介绍 4. 常用入门的操作命令 SQL DQL数据查询语言 DML DDL 5 DDL 创建表 显示建表语句 6 数据类型 数值类型(常用) 小数类型 字符串 日期时间类型 7 数据库设计 约束规则 实体 8 三范式 9 E-R模型 10 备份和恢复 备份 恢复 11 消除重复行 12 where条件的运算符进阶 空判断 运算符优先级 13 连接查询[连表查询、多表查询] 内连接查询(inner join) 右连接查询(right join) 左连接查询(left join) 多表关联 14 单表的连表查询[自关联查询] 15 子查询 主查询 主查询和子查询的关系 16 having 17 select查询语句的完整格式 18 Python操作mysql 安装pymysql模块 使用pymysql模块操作数据库 1. 数据库的介绍 数据库就是一个以某种有组织的方式存储的数据集合。 简单的说,数据库(database)就是一个存放数据的仓库,这个仓库是按照一定的数据结构(数据结构是指数据的组织形式或数据之间的联系)来组织、存储的,我们可以通过数据提供的多种方法来管理数据库里的数据。 好处 : 持久化存储 读写速度极高 保证数据的有效性 对程序支持性非常好,容易扩展 我们可以理解为

python查询mysql中文乱码问题

谁都会走 提交于 2019-12-17 17:54:37
python2.7 查询或者插入中文数据在mysql中的时候出现中文乱码 --- 可能情况: 1.mysql数据库各项没有设置编码,默认为'latin' 2.使用MySQL.connect的时候没有设置默认编码 3.没有设置python的编码,python2.7默认为'ascii' 4.没有解码 --- 解决方法: 1.设置mysql的编码 ubuntu执行下列语句: ** sudo vim /etc/mysql/my.cnf ** 然后在里面插入语句: [client] default-character-set=utf8 [mysqld] character-set-server=utf8 collation-server=utf8_general_ci 退出 vim 重新启动mysql: ** sudo service mysql restart ** 2.在code中设置MySQLdb的连接编码参数 db=MySQLdb.connect(user='...',db='...',passwd='...',host='...',charset='utf8') 3.在code中设置python默认编码 # -*-coding:utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf-8') 4.记得要解码 t =

MySQL用户管理

跟風遠走 提交于 2019-12-17 13:00:17
MySQL账户管理 在我们之前登录MySQL的时候我们都是直接使用的root用户,root用户属于数据库系统中的超级管理员,有权限对mysql进行任何想要做的操作。 如果在生产环境下操作数据库时也是全部直接使用root账户连接,这就和悬崖边跳舞差不多。所以 创建特定的账户,授予这个账户特定的操作权限,然后连接进行操作 比如常规的crud 才是正道。 MySQL账户体系:根据账户所具有的权限的不同,MySQL的账户可以分为以下几种 服务实例级账号:,启动了一个mysqld,即为一个数据库实例;如果某用户如root,拥有服务实例级分配的权限,那么该账号就可以删除所有的数据库、连同这些库中的表 数据库级别账号:对特定数据库执行增删改查的所有操作 数据表级别账号:对特定表执行增删改查等所有操作 字段级别的权限:对某些表的特定字段进行操作 存储程序级别的账号:对存储程序进行增删改查的操作 注意:进行账户操作时,需要使用root账户登录,这个账户拥有最高的实例级权限。账户的操作主要包括创建账户、删除账户、修改密码、授权权限等。 授予权限 需要使用实例级账户登录后操作,以root为例 主要操作包括: 查看所有用户 修改密码 删除用户 查看所有用户 所有用户及权限信息存储在mysql数据库的user表中 查看user表的结构 desc user; 主要字段说明: Host表示允许访问的主机

MySQL数据库初识

拥有回忆 提交于 2019-12-16 22:52:51
一 数据库概述 1. 数据库???   什么是数据库呢?   先来看看百度怎么说的 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。   百度的貌似不好理解啊,让我说啊,数据库是存储数据的地方,超哥,你这不是废话么?这位同学,你你你你你说的对,哈哈,存数据的地方是存在哪里呢,存在硬盘上,为什么不是存在内存里面,因为内存无法永久保存。之前我们存数据都是使用的文件,在一个word文档里面写一些羞羞的网址,然后保存,就存储到硬盘上了。有同学就会说了,超哥,我这通过文件不是也将数据保存上了吗?是的,没毛病,但是你想,通过文件来操作数据,效率是不是很低,首先打开关闭就比较慢,其次是我们操作起来也比较麻烦,对不对,如果我想记录一条关于我个人信息的数据,我使用文档来存,是不是很不友好,并且我们要查数据的时候,看图1:图1是一个word里面记录的信息,如果我想查询出所有人的名字,这个操作是不是就很难搞定了,来来来,配合起来~~,你应该说是的,那我就接着说,有同学可能就会说了,老师我用excel啊,看图2,一列就搞定了,没毛病,但是你想打开操作excel效率低不低。并且通过你自己写的程序来操作这些文件是不是很麻烦

Python之pymysql的使用

故事扮演 提交于 2019-12-16 18:00:25
在python3.x中,可以使用pymysql来MySQL数据库的连接,并实现数据库的各种操作,本次博客主要介绍了pymysql的安装和使用方法。 PyMySQL的安装 一、.windows上的安装方法: 在python3.6中,自带pip3,所以在python3中可以直接使用pip3去安装所需的模块: pip3 install pymysql -i https://pypi.douban.com/simple 二、.linux下安装方法: 1.tar包下载及解压 下载tar包 wget https://pypi.python.org/packages/29/f8/919a28976bf0557b7819fd6935bfd839118aff913407ca58346e14fa6c86/PyMySQL-0.7.11.tar.gz#md5=167f28514f4c20cbc6b1ddf831ade772 解压并展开tar包 tar xf PyMySQL-0.7.11.tar.gz 2.安装 [root@localhost PyMySQL-0.7.11]# python36 setup.py install 数据库的连接 本次测试创建的数据及表: #创建数据库及表,然后插入数据 mysql> create database dbforpymysql; mysql> create