恐れ入ります。
現在、ローカル環境からLinuxサーバー内のMySQLにアクセスしてデータを取得する方法を検討しています。
from sshtunnel import SSHTunnelForwarder import mysql.connector print(1) with SSHTunnelForwarder( ("<サーバーのIPアドレス>", 22), ssh_host_key=None, ssh_username="<サーバーのuser_name>", ssh_password=None, ssh_pkey="<シークレットキーのパス>", remote_bind_address=("localhost", 3306), ) as server: print(2) con = mysql.connector.connect( user = "<MySQLのユーザー>", password = "<MySQLのパスワード>", database = "<DB名>", ) print(3)
こちらを実行すると、
1 2 Access denied for user '<MySQLのユーザー>'@'localhost' (using password: YES)
というようなエラーが表示されました。
通常、MySQLにログインするときにこの種のエラーが表示される場合は、
パスワードが間違っているときでしょうが、パスワードは合っているようです。
また、あえて、パスワード欄を『 = "" 』のように空欄にすると、
using password: No
と表示されますので、パスワード認証までは到達しているようなのです。
こちらの解決方法がおわかりになる方がいらっしゃいましたら、
教えていただけますと幸いです。
※追記
──────────────────
調べてみたところ、mysql.connector.connect()部分で、
ポートを指定したほうが良いという記事を見つけ調整しました。
con = mysql.connector.connect( port = server.local_bind_port, user = "<MySQLのユーザー>", password = "<MySQLのパスワード>", database = "<DB名>", )
すると、
出力は以下のところで固まるようになりました。(10分待っても同じでした)
1 2
──────────────────
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/20 04:38