
LANで3台のサーバーと1台のWindowsマシンを稼働させています
HTTP server (Apache2, PHP5 & phpmyadmin) - 10.0.0.10
DNS - 10.0.0.1
MySQL - 10.0.0.40
Windows - 10.0.0.157
mysql サーバーに mysql の新しいコピーをインストールしました。まず、bind-address をコメントアウトしました。次の操作を実行して権限を付与しました。
CREATE USER 'https'@'localuser' IDENTIFIED BY 'password';
CREATE USER 'https'@'10.0.0.10' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'localhost';
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
しかし、httpサーバー経由でmysqlに接続しようとするたびに、次のことが起こります
mysql -u https -p
enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket 'var/run/mysqld/mysqld.sock'(2)
私が試してみると
mysql -h 10.0.0.40 -P 3306 -u https -p
別のエラーが発生します
ERROR 1045 (28000): Access denied for user 'https'@'10.0.0.10' (Using password: Yes)`
私が知る限り、なぜこのようなことが起こるのかわかりません。設定に必要なことはすべて行ったのですが? :(
私のMySQLのユーザーテーブルには次のものがあります
user | host
https %
https 10.0.0.10
sqlserver 127.0.0.1
sqlserver ::1
debian-sys-maint localhost
https localhost
sqlserver localhost
sqlserver raspberrypi
誰か私に正しい方向を示してもらえますか? いろいろ検索してみましたが、私が見たものはすべて、バインド アドレス行をコメント アウトすることを示しているだけです。
編集sqlserver
名前が変更されたルート アカウント以外のユーザーを使用してローカルにログインすることすらできません。新しいアカウントを追加してローカルでログインしてみましたが、それでも同じ問題が起こります。
答え1
Jos が部分的に答えた私自身の質問に答えます。
バインド アドレス行 ( 内/etc/my.cnf
) をコメント アウトしないでください。代わりに、サーバーの IP アドレス ( ) を指定して10.0.0.40
、MySQL を再起動してください。
それと相まって
GRANT ALL PRIVILEGES ON *.* TO ‘https’@’localhost’ IDENTIFIED BY ‘password’ WITH GRANT OPTION;
代わりに、
GRANT ALL PRIVILEGES ON *.* TO 'https'@'10.0.0.10';
問題は解決しました。同じ問題を抱えている他の人の助けになれば幸いです。
助けてくれてありがとう!
答え2
実行した場合
netstat -an | grep 3306
ポート 3306 の LISTEN のエントリが表示されますか?
答え3
サービスは開始されていますか? 開始されていない場合 (または不明な場合) は、次を実行します。
sudo service mysql start