PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。
Django中也可以使用PyMySQL连接MySQL数据库。
PyMySQL安装
安装命令:pip install pymysql
pip install pymysql # 或者使用 pip3 install pymysql ''' pip和pip3的区别 1、其实这两个命令效果是一样的,没有区别: (1)比如安装库numpy,pip3 install numpy或者pip install numpy:只是当一台电脑同时有多个版本的Python的时候,用pip3就可以自动区分用Python3来安装库。是为了避免和Python2发生冲突的。 (2)如果你的电脑只安装了Python3,那么不管用pip还是pip3都一样的。 2、安装了python3之后,会有pip3 (1)使用pip install XXX : 新安装的库会放在这个目录下面:python2.7/site-packages; (2)使用pip3 install XXX : 新安装的库会放在这个目录下面:python3.6/site-packages; (3)如果使用python3执行程序,那么就不能import python2.7/site-packages中的库。 '''
安装结果:
PyMySQL连接数据库
连接准备
在进行本文以下内容之前需要注意:
- 你有一个MySQL数据库,并且已经启动。
- 你有可以连接该数据库的用户名和密码
- 你有一个有权限操作的database
开始连接
连接程序如下:
import pymysql
user = input("请输入用户名:")
pwd = input("请输入密码:")
conn = pymysql.connect( # 创建链接
host='127.0.0.1',
user='root',
password='root',
database='mydb57',
charset='utf8'
)
#创建游标
cur = conn.cursor()
# 存在SQL注入
# sql = "select * from userinfo where name='%s' and pwd='%s'" %(user, pwd) #这样写会存在SQL注入的问题
# print('查询语句是:', sql)
# res = cur.execute(sql) #这样写会存在SQL注入的问题
# 解决了SQL注入的问题
sql = "select * from userinfo where name=%s and pwd=%s"
print('查询语句是:', sql)
res = cur.execute(sql, [user, pwd]) # user, pwd使用元组和列表都可以
print('res的值是:{}'.format(res))
if res:
print('--------------------登录成功-------------------')
else:
print("--------------------登录失败了--------------------")
cur.close()
conn.close()
增删改查操作
利用pyMySQL操作MySQL数据库进行增删改查等操作详细学习请 点击。
pycharm视图化操作mysql
\
如果报错如下:
Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezone' property manually.
在Advanced
中将serverTimezone
设置成Hongkong
即可
以上问题问题的根源是时区错误:
时区错误,MySQL默认的时区是UTC时区,比北京时间晚
8
个小时。所以要修改mysql的时长
进入命令窗口(Win + R),连接数据库 mysql -hlocalhost -uroot -p,回车,输入密码,回车,如图:
继续输入 show variables like'%time_zone'; (注意不要漏掉后面的分号),回车,如图:
显示 SYSTEM 就是没有设置时区
现在我们来设置时区。
输入set global time_zone = '+8:00'; 注意不要漏掉后面的分号),回车,如图:
这便是设置成功啦!
这时你重新连接下数据库,也许能连接成功!如果没有,就继续往下走!