2020年1月12日日曜日
MySQL8サーバへ外部から接続
192.168.11.10のPCにMySQL(サーバとクライアント)をインストールして、
「Command Line Client」で接続しているのですが、別のホスト(192.168.11.15)から接続したくなりました。
現状、192.168.11.10から
①OK:「Command Line Client」で「パスワード」
②NG:コマンドプロンプトで「mysql -u root -p」
③NG:コマンドプロンプトで「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -h 192.168.11.10 -u root -p」
④OK:コマンドプロンプトで「"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysql.exe" -u root -p」
という状態で、「mysqlのパスが通っていない」、「localhostしか接続が許可されてない」状態のようです。
■パスを通す
Windows10の場合、コンパネのシステムプロパティから「環境変数」の「Path」に新規に
「C:\Program Files\MySQL\MySQL Server 8.0\bin」を設定すればOKです。
コマンドプロンプトで「mysql --version」と実行してエラーがなければOKです。
■現状確認
mysql> select user,host from mysql.user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
rootはlocalhostからしかアクセスできない(らしい)
■localhost以外からの接続を許可する
mysql>create user 'root'@'192.168.11.%' identified by 'パスワード';
Query OK, 0 rows affected (0.01 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.11.%' WITH GRANT OPTION;
Query OK, 0 rows affected (0.01 sec)
※mysql8.xはググってヒットする内容と設定方法が変わって糞ハマりました。。
「grant all privileges on *.* to user1@"192.168.1.%" identified by 'パスワード' with grant option;」
上記は古いMySQLのコマンドなので、エラーが出ます。
'パスワード'は現状と違うパスワードを入れると、ローカル接続とリモートパスワードが異なるのでこれもハマりポイントでした。。参照したサイトが'root'と記載していた。。
mysql> select user,host from mysql.user;
+------------------+-----------------+
| user | host |
+------------------+-----------------+
| root | % | ←間違えてrootをパスワードとして追加してしまった
| root | 192.168.11.0/24 | ←間違えてrootをパスワードとして追加してしまった
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------------+
その場合、ややこしいのでユーザ設定を削除しましょう。
mysql> drop user 'root'@'192.168.11.0/24';
Query OK, 0 rows affected (0.01 sec)
mysql> drop user 'root'@'%';
Query OK, 0 rows affected (0.01 sec)
これで、やっと接続できるようになりました。
・192.168.11.10からC:\Program Files\MySQL\MySQL Server 8.0\bin>mysql -h 192.168.11.10 -u root -p
・192.168.11.15からは「HeidiSQL」というソフトを使って接続できています
はーーーー、、、、疲れた。。
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿