ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

PyMySQL模块和paramiko模块

2021-07-03 11:03:11  阅读:202  来源: 互联网

标签:模块 pymysql PyMySQL cursor user gamedb conn root paramiko


【●】PyMySQL模块:连接mysql服务的模块
一、PyMySQL安装
1.使用pypi
● pypi即 python package index
● 是Python语言的软件仓库
● 官方站点为http://pypi.python.org

2.通过pip安装PyMySQL模块
●安装依赖包
yum  -y install gcc 
●本地安装
pip  install PyMySQL-
●在线安装
pip3 install pymysql

3.使用国内镜像站点
●为了实现安装加速,可以配置pip安装时采用国内镜像站点
[root@localhost ~]# mkdir ~/.pip
[root@localhost ~]# vim ~/.pip/pip.conf
[global]
index-url = http://pypi.douban.com/simple/
[install]
trusted-host=pypi.douban.com


二、PyMySQL
pymysql模块的应用

● 安装 pymysql模块
[root@teacher pymysql_pkgs]# ls
PyMySQL-0.10.1-py2.py3-none-any.whl
[root@teacher pymysql_pkgs]# pip3 install PyMySQL-0.10.1-py2.py3-none-any.whl

#在交换模式下验证模块是否安装成功
[root@teacher pymysql_pkgs]# python3
Python 3.6.7 (default, Nov  5 2020, 03:55:09) 
[GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pymysql 可以导入没报错提示 为成功
>>> 
>>> exit()
[root@teacher pymysql_pkgs]# 


● 准备数据库服务器

专门 提供 连接mysql服务命令的模块   使用模块需要安装pymysql      python包

准备1台数据库服务器
]# rpm  -q  mariadb-server || yum  -y  install  mariadb-server
]# rpm  -q  mariadb ||  yum  -y  install  mariadb
]# systemctl  start  mariadb
]# ss  -utnlp  | grep  :3306     #查看到端口号3306 说明服务运行了 


● 回顾在系统的命令行下如何管理数据库服务

1 设置数据库管理员root用户密码  登录密码为123456
[root@localhost ~]# mysqladmin -hlocalhost -p  password  "123456"
Enter password:  没有旧密码直接回车
[root@localhost ~]#

2  使用设置的密码123456  连接服务
[root@localhost ~]# mysql -uroot -p123456
MariaDB [(none)]>  

3  创建存储数据的库 (在数据库服务器上建文件夹)
MariaDB [(none)]>   create   database    gamedb ;      # ls  /var/lib/mysql/

4 创建存储数据的表 (创建存储数据的文件)
MariaDB [(none)]>  create  table  
gamedb.user(name  char(10), age  int ) DEFAULT set CHARSET=utf8;

5 查看创建库和表
MariaDB [(none)]> show   databases;   #看库
MariaDB [(none)]> use   gamedb ;  #进到库里
MariaDB [(none)]>  show  tables ;   #看表       ]#ls  /var/lib/mysql/gamedb/user.*


● 复习对数据的增删改查
#增加
MariaDB [(none)]>   insert into   gamedb.user  values ("xdd",60) ;
MariaDB [(none)]>   insert into   gamedb.user  values ("pmm",51) ; 

#查
MariaDB [(none)]> select   *    from   gamedb.user;
+------+------+
| name | age  |
+------+------+
| xdd  |   60 |
| pmm  |   51 |
+------+------+

#改
MariaDB [(none)]>  update  gamedb.user    set   age=20;
+------+------+
| name | age  |
+------+------+
| xdd  |   20 |
| pmm  |   20 |
+------+------+
#改符合条件的
MariaDB [gamedb]> update  gamedb.user set age=16 where name="pmm";
Query OK, 1 row affected (0.031 sec)
Rows matched: 1  Changed: 1  Warnings: 0

MariaDB [gamedb]> select  * from gamedb.user;
+------+------+
| name | age  |
+------+------+
| xdd  |   20 |
| pmm  |   16 |
+------+------+
2 rows in set (0.000 sec)

#删
MariaDB [gamedb]> delete from  gamedb.user where name="xdd"; #删复合条件的行
Query OK, 1 row affected (0.039 sec)

MariaDB [gamedb]> select  * from gamedb.user;
+------+------+
| name | age  |
+------+------+
| pmm  |   16 |
+------+------+
1 row in set (0.000 sec)

MariaDB [gamedb]> delete from  gamedb.user;   删除所有行
Query OK, 1 row affected (0.041 sec)

MariaDB [gamedb]> 

● 编写Python脚本  通过执行脚本实现对数据的增删改查
1.连接数据库服务器
2.创建游标
3.定义sql命令  (存储数据或查看数据或修改数据或删除命令)
4.执行sql命令
5.提交命令    (命令下的回车)
6.断开连接
7.在脚本最后给用户一个友好提示
1.连接数据库
● 创建连接是访问数据库的第一步

2.游标
●游标(cursor)就是游动的标识
●通俗地说,一条sql去除对应n条结果资源的接口/句柄,就是游标,沿着游标可以依次取出一行。
cursor = conn.cursor()

3.插入数据
●对数据库表做修改操作,必须要commit
[root@dc mysql]# vim insert.py

import pymysql      #连接数据库服务器
conn = pymysql.connect(
        host='localhost', #本机提供的数据库服务
        db='gamedb',   # 数据库名
        charset='utf8'   # 制定操作的字符集utf8  表里可以存储中文
)

cursor = conn.cursor() #定义游标

# 定义插入数据的sql命令
insert_sql = 'INSERT INTO user VALUES (%s,%s)'

# 插入一条数据到表
#cursor.execute(insert_sql,('丫丫','18'))
#conn.commit()  # 把SQL 语句提交到服务器

#1.2 插入多行数据, 用 executemany 方法 第二个参数是 列表
cursor.executemany(insert_sql,[('静静',21),('丫丫',17),('静丫丫',23),('漂亮>姐',99)])
conn.commit()  # 把SQL 语句提交到服务器

#断开连接
cursor.close()  #关闭游标
conn.close()  # 关闭连接
print("data save ok")
[root@dc mysql]# python insert.py


4.查询数据
● 可以取出表中一条、多条或全部记录
[root@dc mysql]# vim select.py

import pymysql
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    db='gamedb',   # 制定操作哪一个数据库
    charset='utf8'   # 制定操作的字符集
)

cursor = conn.cursor()

#  查询数数据(定义查询语句并放到碗里)
select_sql = 'SELECT * FROM user'
cursor.execute(select_sql)

#2.1 取出一行数据
result1 = cursor.fetchone()
print(result1)

#2.2 取出2行数据
#result2 = cursor.fetchmany(2)
#print(result2)

# 2.3 取出全部数据
#result3 = cursor.fetchall()
#print(result3)

#断开连接
cursor.close()  #关闭游标
conn.close()    #关闭连接

[root@dc mysql]# python select.py

5.移动游标
● 如果希望不是从头取数据,可以先移动游标

6.修改数据
● 通过update修改某一字段的值
[root@dc mysql]# vim update.py
import pymysql
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    db='gamedb',   # 制定操作哪一个数据库
    charset='utf8'   # 制定操作的字符集
)

cursor = conn.cursor()

#  修改
update_sql = 'UPDATE user SET name=%s WHERE age=%s'
cursor.execute(update_sql, ('大宝贝','21'))
conn.commit()  # 提交

#断开连接
cursor.close()  #关闭游标
conn.close()  # 关闭连接
print("data update over")

[root@dc mysql]# python update.py


7.删除记录
● 通过delete删除数据记录
[root@dc mysql]# vim delete.py
import pymysql
conn = pymysql.connect(
    host='localhost',
    user='root',
    password='123456',
    db='gamedb',   # 制定操作哪一个数据库
    charset='utf8'   # 制定操作的字符集
)

cursor = conn.cursor()


#  删除
delete_sql = 'DELETE FROM user WHERE age=%s'
r = cursor.execute(delete_sql, (21))
conn.commit()


#断开连接
cursor.close()  #关闭游标
conn.close()  # 关闭连接
print("delete data ok")

[root@dc mysql]# python delete.py

【●】paramiko模块:连接远程主机

Python3 linkpc.py
1.

[root@dc python]# vim linkpc.py
import paramiko      #导入模块
print("正在连接目标主机请耐心等候......")

ssh_clint = paramiko.SSHClient()   #创建连接命令

ssh_clint.set_missing_host_key_policy(paramiko.AutoAddPolicy())   #同意连接命令

#指定要连接的服务器
ssh_clint.connect('192.168.4.10',username='root',password='root',port=22)

ssh_clint.exec_command('mkdir /dir5')  #连接后要执行的命令
ssh_clint.close()   #断开ssh连接

print('程序执行结束......')   #结束后给个提示信息
[root@dc python]# python3 linkpc.py
正在连接目标主机请耐心等候......
程序执行结束......
 

标签:模块,pymysql,PyMySQL,cursor,user,gamedb,conn,root,paramiko
来源: https://blog.csdn.net/m0_56801312/article/details/118437018

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有