データベース用に別のサーバーがあります。
PDOを使用してデータベースに接続するとき、ホストパラメーターにデータベースVMのIPアドレスを使用しました。
$dbh = new pdo("mysql:host=192.168.56.103;port=3306;dbname=data",'root','root')
しかし、接続が拒否されます(PDOException 'とメッセージ' SQLSTATE [HY000] [2002] ')。そこにMySQLが見つからなかったと思います。ただし、そのIPを持つVMを見つけることができます。
次に、mysqlが実際に実行されていないかどうかを確認します。
sudo aptitude install nmap
その後:
sudo nmap -sS <ipofdbserverhere>
ツールをmysqlサーバーにインストールすることもできます。コマンドは次のようになります。
sudo nmap -sS localhost
どちらの場合も、答えは次のようになります。
[simmel]@[mars]$ sudo nmap -sS 172.16.1.41
Starting Nmap 6.40 ( http://nmap.org ) at 2015-04-08 15:09 CEST
Nmap scan report for 172.16.1.41
Host is up (0.010s latency).
Not shown: 996 closed ports
PORT STATE SERVICE
3306/tcp open mysql
Nmap done: 1 IP address (1 host up) scanned in 33.17 seconds
ポート3306が表示されている場合は、実際に開いており、接続の準備ができています。その場合は、コンピューターからコマンドラインからmysqlを使用してください。
mysql -u<USER> -p<PASSWORD> -h<ipofdbserverhere> <databasename>
同じメッセージが表示されますか?接続拒否?次に、ユーザーはおそらく間違った権限を持っています。
これのもう1つの理由は、mysqlサーバーが127.0.0.1などの特定のアドレスにバインドされている場合です。
調べるには、以下からの出力を確認してください。
sudo netstat -tlpen
mysqlがリッスンして0.0.0.0:3306
いないがリッスンしている場合は127.0.0.1:3306
、localhostからのみ接続できます。
これを変更/etc/mysql/my.cnf
するには、次の行に移動してコメントアウトします。
bind-address = 127.0.0.1
コメントアウトする方法は、先頭の#
文字を追加することです。
#bind-address = 127.0.0.1
ファイルを保存し、mysqlサービスを再起動します
sudo service mysql restart
これで、接続できるようになります。
ポートを変更するには、次のように入力します。
port = 8888
で/etc/mysql/my.cnf
。
ファイルを保存し、mysqlサービスを再起動します。
sudo service mysql restart
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加