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