Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何通过Python通过ssh连接到mysql_Python_Mysql_Ssh_Jupyter Notebook - Fatal编程技术网

如何通过Python通过ssh连接到mysql

如何通过Python通过ssh连接到mysql,python,mysql,ssh,jupyter-notebook,Python,Mysql,Ssh,Jupyter Notebook,我在StackOverflow中检查了这些答案,但它们不适用于我:,和 我按照这些答案编写代码,并得到“(1045,“拒绝用户'root'@'localhost'访问(使用密码:YES)”)。为什么呢 我的代码在这里: 第一次尝试: from sshtunnel import SSHTunnelForwarder with SSHTunnelForwarder( ('****.ucd.ie', 22), ssh_password="***",

我在StackOverflow中检查了这些答案,但它们不适用于我:,和

我按照这些答案编写代码,并得到“(1045,“拒绝用户'root'@'localhost'访问(使用密码:YES)”)。为什么呢

我的代码在这里:

第一次尝试:

from sshtunnel import SSHTunnelForwarder

with SSHTunnelForwarder(
      ('****.ucd.ie', 22),
      ssh_password="***",
      ssh_username="s***",
      remote_bind_address=('127.0.0.1', 3306)) as server:

     con = pymysql.connect(user='root',passwd='***',db='dublinbus',host='127.0.0.1',port=3306)
第二次尝试:

from sshtunnel import SSHTunnelForwarder
import pymysql
import pandas as pd

tunnel = SSHTunnelForwarder(('****.ucd.ie', 22), ssh_password='***', ssh_username='s***t',
     remote_bind_address=('127.0.0.1', 3306)) 
tunnel.start()
conn = pymysql.connect(host='127.0.0.1', user='root', passwd='****', port=3306)
data = pd.read_sql_query("SHOW DATABASES;", conn)
第三次尝试:

from sshtunnel import SSHTunnelForwarder
import pymysql

with SSHTunnelForwarder(
    ('****.ucd.ie',22),  
    ssh_password='****',
    ssh_username='s****t',
    remote_bind_address=('127.0.0.1', 3306)) as server:  
 
    db_connect = pymysql.connect(host='127.0.0.1',  
                                 port=3306,
                                 user='root',
                                 passwd='****',
                                 db='dublinbus')
 
    cur = db_connect.cursor()
    cur.execute('SELECT stop_num FROM dublinbus.stops limit 10;')
    data=cur.fetchone()
    print(data[0])
他们都给了我:(1045,“拒绝用户'root'@'localhost(使用密码:YES)的访问)

那么我如何通过SSH连接到我的远程Mysql呢

此外,我在本地mysql工作台中使用相同的“ssh主机名”和“mysql主机名”“mysql服务器端口”。我不知道它是否会产生一些影响

#我用***来代替一些私人信息。

这可能有用:

from sshtunnel import SSHTunnelForwarder
import pymysql
import pandas as pd

server = SSHTunnelForwarder(
ssh_address=('****', 22),
ssh_username="****",
ssh_password="****",
remote_bind_address=("127.0.0.1", 3306))

server.start()

con = pymysql.connect(user='root',passwd='***',db='****',host='127.0.0.1',port=server.local_bind_port)