
私はMySQLの初心者で、リモートログインを使いたいのですが、これに従いましたスタックプロセスですが、コマンドはリンクにリストされているように画面に何も表示しません
$ lsof -i -P | grep :3306
$
これが出力です。
これまでやったこと: ファイルを編集しましたphpMySQL の mysql.cnf ファイル変更を加えると次のようになります
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
私が基本的に望んでいるのはリモートログインです。しかし、それができません。ターミナルで次のコマンドを実行します
$ mysql -h 127.6.110.2 -u adminTwz5PWn -p
$ enter password:
ERROR 1045 (28000): Access denied for user 'adminTwz5PWn'@'localhost' (using password: YES)
必要な情報のために、このユーザー名とパスワードをOpenshiftから取得しました 私の懸念は、コマンドでホストIPを指定している場合、@ 'localhost'がどのように関係してくるかということです
次のようにユーザーにmysqlにログインしてもらいます
+------------------+---------------+
| user | host |
+------------------+---------------+
| root | % |
| root | 127.0.0.1 |
| adminvKbP1kf | 127.3.138.130 |
| adminTwz5PWn | 127.6.110.2 |
| root | ::1 |
| user | hostname |
| debian-sys-maint | localhost |
| phpmyadmin | localhost |
| phpmyadmin_suraj | localhost |
| root | localhost |
| suraj | localhost |
+------------------+---------------+
どこか間違っている場合は訂正してください。そして、これを成功させるにはどのような手順が必要ですか?
答え1
IP 範囲全体が127.0.0.0/8
ループバック用に予約されています。 のみを使用するのが一般的ですが127.0.0.1
、IP127.6.110.2
もループバックであるため、「localhost エラー」が発生します。
MySQL サーバーでip a
または を実行してifconfig
パブリック IP アドレスを見つけ、そのアドレスに接続します。
また、リモート マシンからの接続が許可されている mysql ユーザーも必要です。mysql
サーバー上で実行して mysql コンソールを開き、次のいずれかのクエリを実行します (ユーザー名とパスワードを自分の資格情報に変更します)。
リモート ユーザーが特定の IP xxxx からのみ接続できるようにするには:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'x.x.x.x' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
リモート ユーザーがどこからでも接続できるようにするには:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
これらのクエリが有効になることを確認するには、FLUSH PRIVILEGES;
次を実行します。