私のサーバーのMySQLデータベースに簡単に接続しようとすると、
Warning: mysqli_connect(): (HY000/2003): Can't connect to MySQL server on '<Host>' (113)
netstat -tulpenに:3306レコードがあります
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 999 801279 32067/mysqld
My.cnfのバインドアドレスが0.0.0.0
に設定されていますが、それでもデータベースに接続できません。
MySQLユーザー
+------------------+------------------------+
| User | Host |
+------------------+------------------------+
| root | 127.0.0.1 |
| root | localhost |
| root | <ip> |
+------------------+------------------------+
サーバー内部から接続できます。
私には何が欠けていますか?
前もって感謝します
113エラーは「ホストへのルートがない」エラーを示します。両方のマシンでIPアドレスを設定する必要があります。
もちろん、それはroutable.elseでなければなりません、それは動作しません。
特定のケースでは、2つのオプションがあります。最も可能性が高いのは、ファイアウォールがそのポートをまだブロックしているため、外部がアクセスできないことです。代わりの、そして奇妙なものは、アイデンティティの問題です。 MySQLでは、デフォルトで、管理者ユーザーは内部と外部の両方にログインできません。このIDが「localhost」以外の場所からログインできるようにするには、ホストとユーザーのペアを定義する必要があります。
root# mysql -u root -p
次に、「mysql」という名前のデータベースを開き、関心のあるユーザーを確認します。私の例は「ルート」ユーザーです。
mysql> use mysql;
mysql> select * from user where User="root";
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| Host | User | Password | Select_priv | Insert_priv | Update_priv | Delete_priv | Create_priv | Drop_priv | Reload_priv | Shutdown_priv | Process_priv | File_priv | Grant_priv | References_priv | Index_priv | Alter_priv | Show_db_priv | Super_priv | Create_tmp_table_priv | Lock_tables_priv | Execute_priv | Repl_slave_priv | Repl_client_priv | Create_view_priv | Show_view_priv | Create_routine_priv | Alter_routine_priv | Create_user_priv | ssl_type | ssl_cipher | x509_issuer | x509_subject | max_questions | max_updates | max_connections | max_user_connections |
+-----------+------+-------------------------------------------+-------------+-------------+-------------+-------------+-------------+-----------+-------------+---------------+--------------+-----------+------------+-----------------+------------+------------+--------------+------------+-----------------------+------------------+--------------+-----------------+------------------+------------------+----------------+---------------------+--------------------+------------------+----------+------------+-------------+--------------+---------------+-------------+-----------------+----------------------+
| localhost | root | *A86DD7ED2F8269DFFDC595311DF5FF08872C12AB | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
| kickseed | root | *A86DD7ED2F8269DFFDC595311DF5FF08872C12AB | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
| 127.0.0.1 | root | *A86DD7ED2F8269DFFDC595311DF5FF08872C12AB | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
| 10.%.%.% | root | *A86DD7ED2F8269DFFDC595311DF5FF08872C12AB | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | Y | | | | | 0 | 0 | 0 | 0 |
ご覧のとおり、ルートには4つの個別のエントリがあります。1つはローカル、1つはループバック、1つはサーバーのキックシード、もう1つは開発ネットワークです。新規ユーザーであるかのように作成および付与の手順を実行し、それに応じて権限を設定する必要があります。