[英]how to connect to mysql via ssh by Python
I have check these answers in StackOverflow but they don't work for me: A1 , A2 and A3 .我在 StackOverflow 中检查了这些答案,但它们对我不起作用: A1 、 A2和A3 。
I write my code follows as these answers and got'(1045, "Access denied for user 'root'@'localhost' (using password: YES)")'.我按照这些答案编写代码并得到'(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:YES)”)'。 Why is that?
这是为什么?
my code here:我的代码在这里:
first try:第一次尝试:
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)
second try:第二次尝试:
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)
third try:第三次尝试:
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])
All of them give me: (1045, "Access denied for user 'root'@'localhost' (using password: YES)")他们都给了我:(1045,“用户'root'@'localhost'的访问被拒绝(使用密码:YES)”)
So how could I connect to my remote Mysql via SSH?那么如何通过 SSH 连接到我的远程 Mysql?
Moreover, I use the same 'ssh hostname' and 'mysql hostname' 'mysql server port' in my local mysql workbench.此外,我在本地 mysql 工作台中使用相同的“ssh 主机名”和“mysql 主机名”“mysql 服务器端口”。 I donot know whether it will have some impact or not.
不知道会不会有影响。
#I use *** to replace some private information. #我用***来代替一些私人信息。
this could work:这可以工作:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.