0

リモートサーバーにmysqlにアクセスして、そこにデータベースを作成しようとしています。パテを使って接続しています。問題は、何をしても「アクセスが拒否されました」というエラーが表示されることです。

:mysql -p
:mysql -u <username> -p
.
.
.

私はまだ警告を受けます。

エラー 1045 (28000): ユーザー 'username'@'localhost' のアクセスが拒否されました (パスワードを使用: NO)

エラー 1045 (28000): ユーザー 'username'@'localhost' のアクセスが拒否されました (使用するパスワード: YES)

パスワードを入力しない場合と入力する場合のそれぞれに 1 つずつ。

4

1 に答える 1

1

MySql へのリモート アクセスに問題があります。ここから

  • ステップ 1: ssh 経由でログインする

まず、ssh 経由でリモートの MySQL データベース サーバーにログインします。

  • ステップ # 2: ネットワークを有効にする

接続したら、vi などのテキスト エディタを使用して mysql 構成ファイル my.cfg を編集する必要があります。

Debian Linux ファイルは次の場所にあります。/etc/mysql/my.cnf

# vi /etc/my.cnf
  • ステップ # 3: ファイルが開いたら、[mysqld] と表示されている行を見つけます。

行 skip-networking がコメント化されていることを確認 (または行を削除) し、次の行を追加します。

bind-address=YOUR-SERVER-IP

たとえば、MySQL サーバーの IP が 172.20.5.2 の場合、ブロック全体は次のようになります。

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 172.20.5.2

# skip-networking
....
..
....

- bind-address : バインド先の IP アドレス。- skip-networking : TCP/IP 接続をまったくリッスンしません。mysqld とのすべてのやり取りは、Unix ソケット経由で行う必要があります。このオプションは、ローカル リクエストのみが許可されているシステムに強くお勧めします。リモート接続を許可する必要があるため、この行をファイルから削除するか、コメント状態にする必要があります。

  • Step# 4 ファイルを保存して閉じます。

mysql サービスを再起動して、変更を有効にします

# /etc/init.d/mysql restart
  • ステップ 5 リモート IP アドレスへのアクセスを許可する

    # mysql -u ルート –p mysql

新しいデータベースへのアクセスを許可する

ユーザー bar とリモート IP 162.54.10.20 に foo という名前の新しいデータベースを追加する場合は、mysql> プロンプトで次のコマンドを入力する必要があります。

mysql> CREATE DATABASE foo;

mysql> GRANT ALL ON foo.* TO bar@'162.54.10.20' IDENTIFIED BY 'PASSWORD';

既存のデータベースへのアクセスを許可する

ユーザー webadmin の webdb というデータベースに対して 162.54.10.20 というリモート IP から常に接続していると仮定すると、この IP アドレスへのアクセスを許可する必要があります。mysql> プロンプトで、既存のデータベースに対して次のコマンドを入力します。

mysql> update db set Host='162.54.10.20' where Db='webdb';

mysql> update user set Host='162.54.10.20' where user='webadmin';
  • ステップ # 6: MySQL のログアウト

exit コマンドを入力して、mysql をログアウトします。

mysql> exit
  • ステップ # 7: テストする

リモート システム タイプ コマンドから

$ mysql -u webadmin –h 172.20.5.2 –p

テスト目的で telnet を使用してポート 3306 に接続することもできます。

$ telnet 172.20.5.2 3306
于 2011-03-02T03:51:36.400 に答える