Paramiko和MySQL相关-day10
Posted Leon-Py
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Paramiko和MySQL相关-day10相关的知识,希望对你有一定的参考价值。
本章内容
- paramiko基本使用
- mysql基础语法
- pymysql模块使用
- Python操作memcached
- Python操作redis
一、paramiko模块基本使用
paramiko是Python的一个模块,如果电脑没有装这个模块的话需要使用pip3 install paramiko。paramiko模块的主要功能是连接服务器并在远端服务器执行命令并把结果返回到本地。目前很多自动化工具也用的是该模块,比如ansible。
- 基于SSH密码登陆
import paramiko #创建一个ssh socket对象 ssh_client = paramiko.SSHClient() #允许连接不在know_hosts文件中的主机 ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #连接到ssh服务器 ssh_client.connect(hostname=\'95.163.199.239\',port=端口,username=\'root\',password=\'passwd\',timeout=56) #执行命令, stdin,stdout,stderr = ssh_client.exec_command(\'df\') #获取结果,结果是bytes类型 result = stdout.read() result_str = result.decode(\'utf-8\') print(result_str) #关闭连接 ssh_client.close()
transport = paramiko.Transport((\'95.163.199.239\',端口)) transport.connect(username=\'用户\',password=\'密码\') ssh = paramiko.SSHClient() ssh._transport = transport stdin,stdout,stderr = ssh.exec_command(\'df\') print(stdout.read().decode(\'utf-8\')) transport.close()
- 基于RSA秘钥登陆
#创建秘钥的文件对象 key_file = open(r\'E:\\filename\\filename\\id_rsa_2048\') #服务器的秘钥 rsa_key = paramiko.RSAKey.from_private_key(key_file,\'rsa_password\') #连接ssh服务器 ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) #登陆服务器携带秘钥 ssh.connect(hostname=\'95.163.199.239\',port=端口,username=\'root\',pkey=rsa_key) stdin,stdout,stderr = ssh.exec_command(\'df\') print(stdout.read().decode(\'utf-8\')) ssh.close()
key_file = open(r\'E:\\filename\\filename\\id_rsa_2048\') rsa_key = paramiko.RSAKey.from_private_key(key_file,\'rsa_password\') transport = paramiko.Transport((\'95.163.199.239\',port)) transport.connect(username=\'root\',pkey=rsa_key) ssh = paramiko.SSHClient() ssh._transport = transport stdin,stdout,stderr = ssh.exec_command(\'df\') print(stdout.read().decode(\'utf-8\')) transport.close()
- 使用paramiko对文件进行上传和下载
import paramiko transport = paramiko.Transport((\'hostname\',22)) transport.connect(username=\'leon\',password=\'123\') sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py sftp.put(\'/tmp/location.py\', \'/tmp/test.py\') # 将remove_path 下载到本地 local_path sftp.get(\'remove_path\', \'local_path\')
- 基于秘钥的上传下载
import paramiko private_key = paramiko.RSAKey.from_private_key_file(\'/home/auto/.ssh/id_rsa\') transport = paramiko.Transport((\'hostname\', 22)) transport.connect(username=\'leon\', pkey=private_key ) sftp = paramiko.SFTPClient.from_transport(transport) # 将location.py 上传至服务器 /tmp/test.py sftp.put(\'/tmp/location.py\', \'/tmp/test.py\') # 将remove_path 下载到本地 local_path sftp.get(\'remove_path\', \'local_path\')
class SSH_Client(object): def __init__(self,host=None,port=None,username=None,password=None): self.host = host self.port = port self.username = username self.password = password self._transport = None def run(self): self.conn() def conn(self): transport = paramiko.Transport((self.host,self.port)) transport.connect(username=self.username,password=self.password) self._transport = transport def close(self): self._transport.close() def command(self): ssh = paramiko.SSHClient() ssh._transport = self._transport while True: command = input(\'[localhost~]#:\').strip() if command: if command == "exit": self.close() exit() else: stdin,stdout,stderr = ssh.exec_command(command) print(stdout.read().decode(\'utf-8\')) else: continue ssh = SSH_Client() ssh.run()
二、MySQL的基本语法
-用户管理
创建用户- create user \'username\'@\'ipaddr\' identified by \'password\';
- 删除用户 drop user \'username\'@\'ipaddr\';
- 修改用户 rename user \'username\'@\'ipaddr\' to \'new_username\'@\'ipaddr\';
- 修改密码 set password for \'username\'@\'ipaddr\' = Password(\'new_password\');
- 查看目前所有用户 select host,user from mysql.user;
授权管理:
show grants for \'username\'@\'ipaddr\'; - 查看权限
grant 权限 on 数据库.表 to \'用户名\'@\'密码\' 授权管理:
revoke 权限 on 数据库.表 from \'用户名\'@\'密码\' 移除权限
all privileges 除grant外的所有权限
select 仅查权限
select,insert 查和插入权限
...
usage 无访问权限
alter 使用alter table
alter routine 使用alter procedure和drop procedure
create 使用create table
create routine 使用create procedure
create temporary tables 使用create temporary tables
create user 使用create user、drop user、rename user和revoke all privileges
create view 使用create view
delete 使用delete
drop 使用drop table
execute 使用call和存储过程
file 使用select into outfile 和 load data infile
grant option 使用grant 和 revoke
index 使用index
insert 使用insert
lock tables 使用lock table
process 使用show full processlist
select 使用select
show databases 使用show databases
show view 使用show view
update 使用update
reload 使用flush
shutdown 使用mysqladmin shutdown(关闭MySQL)
super 以上是关于Paramiko和MySQL相关-day10的主要内容,如果未能解决你的问题,请参考以下文章
背水一战 Windows 10 (76) - 控件(控件基类): Control - 基础知识, 焦点相关, 运行时获取 ControlTemplate 和 DataTemplate 中的元素(代码片