サーバーでは、rootがmysqlを使用するためにパスワードを必要としないように設定しました(資格情報は〜/ .mylogin.cnfにあります)。これで、SSHトンネルを介してリモートでmysqlに接続したいので、パスワードを入力する必要はありません。
# open the tunnel (I'm using local port 3305 because 3306 is already taken for some reason)
ssh server -L 3305:127.0.0.1:3306 -N
# now try to connect
mysql -h 127.0.0.1 -P 3305 -u root
しかし、これはうまくいきません。エラーは次のとおりです。エラー1045(28000):ユーザー「root」@「localhost」へのアクセスが拒否されました(パスワードの使用:NO)。
私は何が間違っていましたか?
答え1
mysqlの資格情報を設定しました。リモートサーバーそして、あなたはmysqlクライアントを実行しています地元の。
~/.mylogin.cnf でポート 3305 を使用して localhost の mysql インスタンスを設定します。
答え2
コマンドの最後に-pを追加してパスワードプロンプトを表示することもできます。
答え3
rootでSSH接続を開くことはできますか?一部のLinuxディストリビューションでは、デフォルトでルートSSHアクセスを制限しています。/etc/ssh/sshd_config
ファイルの行の確認
PermitRootLogin yes
PasswordAuthentication yes