PyMySQL模块和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
正在连接目标主机请耐心等候......
程序执行结束......
 

上一篇:paroot忘记root密码


下一篇:python paramiko 传输下载文件