您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用python连接CentOS7上的数据库

bubuko 2022/1/25 19:37:28 python 字数 6410 阅读 831 来源 http://www.bubuko.com/infolist-5-1.html

# -*- coding: utf-8 -*- # Time: 2020/06/30 16:23 # Author: sewen import pymysql from sshtunnel import SSHTunnelForwarder def PORT(): with SSHTunnelFor ...
# -*- coding: utf-8 -*-
# Time:   2020/06/30 16:23
# Author: sewen

import pymysql

from sshtunnel import SSHTunnelForwarder
def PORT():
    with SSHTunnelForwarder(
            ssh_address_or_host=("服务器ip", 22),
            ssh_username="root",
            ssh_pkey="D:/desktop/1/id_rsa",#将服务器上生成的密匙文件拷贝到连接的电脑上
            ssh_private_key_password="123",
            remote_bind_address=(127.0.0.1, 3306),
                            ) as tunnel:
        # return tunnel.local_bind_port
        con = pymysql.connect(host=127.0.0.1, port=tunnel.local_bind_port, user=root, password=Mysql_123, database=db, charset=utf8)
        cur = con.cursor()
        sql = "select * from info;"
        cur.execute(sql)
        s = cur.fetchall()
        print(s)
        con.commit()
        cur.close()
        con.close()

if __name__ == __main__:
    PORT()

解析

在centos7中ssh服务默认是已经被安装了的。通过命令rpm -qa | grep openssh 查看是否安装了ssh服务

技术分享图片
一、客户端免密ssh登录到服务器

1.安装ssh:yum install openssh    默认已经安装了,可忽略此步骤。
2.客户端生成key:[root@localhost ~]# ssh-keygen -t rsa一路回车即可,在root家目录就能生成一个隐藏文件夹.ssh
3.查看生成的秘钥文件:cd .ssh/,ls后可以看到有两个秘钥文件,一个是公钥一个是私钥

技术分享图片

4.将客户端上生成的key拷贝(传)到服务器端:[root@localhost .ssh]# ssh-copy-id 10.100.100.210     这个Ip是目标服务器ip,然后按照提示输入yes回车,再输入目标服务器的root密码回车。

技术分享图片

5.此时到服务器上的root家目录,cd ~后cd .ssh/ 这里面就有秘钥文件了。没在客户端做第四部的话,那么在服务器端是看不到传来的秘钥文件的。

技术分享图片技术分享图片

6.客户端尝试用ssh连接服务器端
[root@localhost .ssh]# ssh 10.100.100.210     正常情况下应当啥也不输入,直接登录进去了。
7.ssh会在客户端上生成一个连接文件,可以 cd ~/.ssh/,并ls一下,发现又多出来一个known_hosts文件。

技术分享图片

8.如果上面无法远程到服务器,请检查ssh配置文件,然后需要把一些东西去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
=====================

9.接着上面的写,利用别名登录远程服务器(即ip地址不是平时记不住吗,可以给这个ssh的服务器ip取个别名),在root的家目录下的.ssh/文件夹下,创建一个config文件,文件内容如:
kahnServer是别名,它的地址是10.100.100.210,登录端口22,登录用户名root,秘钥文件是~/.ssh/id_rsa

技术分享图片

技术分享图片

#/root/.ssh/config文件内容如下
Host kahnServer
HostName 10.100.100.210
Port 22
User root
IdentityFile ~/.ssh/id_rsa

 

二、更改ssh端口

大致说下注意的地方
1.首先得关闭selinux
[root@localhost ssh]# setenforce 0  临时关闭selinux
2.防火墙开放相应的新ssh端口号
[root@localhost ssh]# firewall-cmd --permanent --add-port=3721/tcp
3.更改ssh配置文件/etc/ssh/sshd_config ,将Port 22取消注释,再加一行Port 3721,

技术分享图片

4.如果也想将别名通过非标端口连接ssh的,也需要修改~/.ssh/config文件中的端口地址。
5.注意重启防火墙生效
6.服务器端重启ssh服务:systemctl restart sshd
7.查看ssh服务的状态(里面能看到有新加的端口3721,若有问题会冒红):systemctl status sshd
8.客户端使用ssh命令连接到服务器,如: ssh -p 3721 10.100.100.210 或别名ssh kahnServer

使用python连接CentOS7上的数据库

原文:https://www.cnblogs.com/sewen-H/p/13220398.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶