mysql python pymysql模块 基本使用
我们都是通过MySQL自带的命令行客户端工具mysql来操作数据库,那如何在python程序中操作数据库呢?
这就用到了pymysql模块,该模块本质就是一个套接字客户端软件,使用前需要事先安装
pip3 install pymysql
mysql 服务端ip = 192.168.0.106
我自己电脑 192.168.0.105
创建数据库db10
mysql> create database db10 charset=utf8;
Query OK, 1 row affected (0.12 sec)
use db10;
创建表
mysql> create table userinfo(id int not null primary key auto_increment,name varchar(50) not null,pwd varchar(50) nott null);
Query OK, 0 rows affected (0.39 sec)
插入表
mysql> insert into userinfo(name,pwd) values('mike',''),('jack','');
Query OK, 2 rows affected (0.19 sec)
Records: 2 Duplicates: 0 Warnings: 0
用户信息表创建好了
mysql> select * from userinfo;
+----+------+-----+
| id | name | pwd |
+----+------+-----+
| 1 | mike | 123 |
| 2 | jack | 456 |
+----+------+-----+
2 rows in set (0.00 sec)
授权
mysql> grant all on *.* to 'root'@'192.168.0.105' identified by '';
Query OK, 0 rows affected (0.15 sec) mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
游标就是登录进入mysql的命令行的光标
游标是给mysql提交命令的接口
mysql>
# 拿到游标对象
cur = conn.cursor()
游标是给mysql提交命令的接口
mysql>
把sql语句传递到这里
rows = cur.execute(sql)
execute拿到结果 不是 我mysql查询的结果,而是 红色 2 的结果 代表拿到2行结果
select * from userinfo;
+----+------+-----+
| id | name | pwd |
+----+------+-----+
| 1 | mike | 123 |
| 2 | jack | 456 |
+----+------+-----+
2 rows in set (0.00 sec)
如果绿色的值 不为0 代表 我输入的账号和密码都输入正确了
执行完sql语句要关闭游标和mysql连接
完整代码
import pymysql input_user = input('usr>>>:').strip()
input_pwd = input('pwd>>>:').strip() mysql_host = '192.168.0.106'
port = 3306
mysql_user = 'root'
mysql_pwd = ''
encoding = 'utf8' # 建立 连接mysql服务端 conn = pymysql.connect(
host=mysql_host, # mysql服务端ip
port=port, # mysql端口
user=mysql_user, # mysql 账号
password=mysql_pwd, # mysql服务端密码
db='db10', # 操作的库
charset=encoding # 读取字符串编码 ) # 拿到游标对象
cur = conn.cursor() '''
游标是给mysql提交命令的接口
mysql>
把sql语句传递到这里
''' # 执行sql语句
'''
执行sql语句之前应该根据我输入的用户名和密码,到数据库里面的表里
查有没有我输入的用户名和密码 '''
# 写一条sql语句往后台去查
# 注意%s需要加引号
sql= 'select * from userinfo where name="%s" and pwd="%s"; '%(input_user,
input_pwd) '''
如果这条sql语句能够查出结果,我输入的账号和密码,数据库是存在的
证明我输入的账号和密码是对的
如果执行sql语句 没有结果就是数据库没有我输入的账号和密码
''' # 把sql语句传给游标执行
rows = cur.execute(sql) # #执行sql语句,返回sql查询成功的记录数目 # 执行完sql语句要关闭游标和mysql连接
cur.close()
conn.close() # 进行判断
if rows:
print("登录成功")
else:
print("登录失败") '''
usr>>>:xxx
pwd>>>:123
登录失败
''' '''
usr>>>:mike
pwd>>>:123
登录成功
'''
如果mysql部署在centos 记得把 iptables 加上
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
还有selinux 关掉
mysql python pymysql模块 基本使用的更多相关文章
- mysql python pymysql模块 增删改查 插入数据 介绍 commit() execute() executemany() 函数
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 fetchone
import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' mysql_pwd = ' encoding = ...
- mysql python pymysql模块 增删改查 查询 字典游标显示
我们看到取得结果是一个元祖,但是不知道是哪个字段的,如果字段多的时候,就比较麻烦 ''' (1, 'mike', '123') (2, 'jack', '456') ''' 用字典显示查询的结果,也可 ...
- mysql python pymysql模块 增删改查 查询 fetchmany fetchall函数
查询的fetchmany fetchall函数 import pymysql mysql_host = '192.168.0.106' port = 3306 mysql_user = 'root' ...
- mysql python pymysql模块 获取插入的最后一条数据的自增ID lastrowid()方法
调用游标下的lastrowid 可以获取插入之前的表里id字段存放到哪个自增id cursor.lastrowid mysql> select * from userinfo; +----+-- ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- 第二百七十九节,MySQL数据库-pymysql模块操作数据库
MySQL数据库-pymysql模块操作数据库 pymysql模块是python操作数据库的一个模块 connect()创建数据库链接,参数是连接数据库需要的连接参数使用方式: 模块名称.connec ...
- MySQL之pymysql模块
MySQL之pymysql模块 import pymysql #s链接数据库 conn = pymysql.connect( host = '127.0.0.1', #被连接数据库的ip地址 po ...
- (转)Python中操作mysql的pymysql模块详解
原文:https://www.cnblogs.com/wt11/p/6141225.html https://shockerli.net/post/python3-pymysql/----Python ...
随机推荐
- Elastic Search 5.4.3 java api 入门
首先介绍一点,es的版本从之前的2.x跳跃到5.x,很多插件要保持一致,不然会产生很多版本不兼容的问题. 首先看一个demo先熟悉一下, 具体代码在git服务器上: https://github.co ...
- javascript的初步认识
把握自己,就是时时拥有一颗清澈的心,拥有一片明朗的情怀.嘿嘿,我们在2014-2015的跨度里,我们休息了的四天,今天又回到了学习的阶段,敲起来键盘突然有点陌生,想一想时间真的好快,在这里我们已经是跨 ...
- PHP的ISAPI和FastCGI比较
1.CGI(通用网关接口/Common Gateway Interface)一般是可执行程序,例如EXE文件,和WEB服务器各自占据着不同的进程,而且一般一个CGI程序只能处理一个用户请求.这样,当 ...
- 【Python3】 django2.0 url 跳转设置
python: 3.6.4 django : 2.0 在创建应用时候.我是把 urls.py 分开了.所以在设置url跳转时候.要修改成如下模式 1 父 urls.py 里边要加上命名空间 2 ...
- Underscore.js(JavaScript对象操作方法)
Underscore封装了常用的JavaScript对象操作方法,用于提高开发效率.(Underscore还可以被使用在Node.js运行环境.) 在学习Underscore之前,你应该先保存它的AP ...
- 在本机搭建mycat 单机环境,使用mariadb 伪集群
首先搭建mairadb的集群 master 使用端口3306 slave 使用端口3406 master 相关配置 在my.ini 文件的[mysqld] 节点中添加或修改如下配置 #允许其他机器re ...
- Python读写txt文本文件
一.文件的打开和创建 ? 1 2 3 4 5 >>> f = open('/tmp/test.txt') >>> f.read() 'hello python!\n ...
- 对Array进行排序(按字母顺序)
通过使用java.utils.Arrays.sort()和String.CASE_INSENSITIVE_OREDR,可以很容易的对结果进行排序(按字母顺序): String[] array = { ...
- SSL是什么?如何使用?
SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与 ...
- 字符乱码 导致 ORA-12899: value too large
问题场景: 1.创建测试表 create table t01(name varchar2(30)) 2.插入数据 SQL> insert into t01 (name) values('所有分销 ...