[解決済み] すべてのホストからMySQLのルートアクセス
質問
リモートのUbuntuマシンにMySQLサーバーをインストールしました。その際
root
のユーザーを定義しています。
mysql.user
テーブルはこのようになります。
mysql> SELECT host, user, password FROM user WHERE user = 'root';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| localhost | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ip-10-48-110-188 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| 127.0.0.1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
| ::1 | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
ユーザーでアクセスできる
root
を使用して、同じリモートマシンのコマンドラインインタフェースから、標準の
mysql
クライアントを使用します。ここで私は
インターネット上のすべてのホストからの root アクセスを許可する
という行を追加してみました(前のダンプの最初の行と全く同じものです。
host
の列があります)。
mysql> SELECT host, user, password FROM user WHERE host = '%';
+------------------+------+-------------------------------------------+
| host | user | password |
+------------------+------+-------------------------------------------+
| % | root | *xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx |
+------------------+------+-------------------------------------------+
しかし、個人PCのクライアントからは引き続き言われています(サーバーのIPは曖昧にしました)。
SQLエラー(2003)。46.x.x.x'のMySQLサーバーに接続できません(10061)
認証エラーなのか、ネットワークエラーなのかがわかりません。サーバーのファイアウォールでは、ポート 3306/TCP に対して 0.0.0.0/0 ということで、私としてはOKです...。
解決方法は?
更新してください。
コメントにあるように、MySql 8 以降は、まず明示的にユーザーを作成する必要があるので、コマンドは以下のようになります。
CREATE USER 'root'@'%' IDENTIFIED BY 'root'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
オリジナルの回答です。
そのプロセスには2つの段階があります。
a) 権限を付与する。ルートユーザーとして、次のように置き換えて実行します。
'password'
を現在のrootパスワードに置き換えてください。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
b) すべてのアドレスにバインドする。
最も簡単な方法は
コメントアウト
の行は
my.cnf
ファイルを作成します。
#bind-address = 127.0.0.1
を実行し、mysqlを再起動します。
service mysql restart
デフォルトではlocalhostにのみバインドされますが、この行をコメントすると、見つけたすべてのインターフェイスにバインドされます。この行をコメントアウトすると、次のようになります。
bind-address=*
.
mysqlサービスがどこにバインドされたかを確認するために、rootで実行します。
netstat -tupan | grep mysql
Ubuntu 16.0向けアップデート
設定ファイルは(現在)
/etc/mysql/mysql.conf.d/mysqld.cnf
(少なくとも標準的なUbuntu 16では)
関連
-
[解決済み】マルチパート識別子をバインドできない
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み] MySQL ERROR 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES)のアクセスが拒否されました。
-
[解決済み] MySQL Error: : 'Access denied for user 'root'@'localhost'
-
[解決済み】ホスト 'xxx.xx.xxx.xxx' がこのMySQLサーバーへの接続を許可されていない。
-
[解決済み】macOSでbrew install mysqlをする。
-
[解決済み] MySQLのリモート接続を有効にします。エラー 1045 (28000)。ユーザーへのアクセスが拒否されました
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MySQL Innodb インデックスメカニズム詳細解説
-
MySQLにおけるorder byの使用方法の詳細
-
MySQLのLike演算子に関する詳細
-
MySQLはこのようなUpdateステートメントを書くべきではありません
-
MysqlからElasticsearchにデータを同期させる方法を説明します。
-
MySQLで正規表現を使う 詳細
-
[解決済み】MySQL - オペランドは1つのカラムを含む必要があります。
-
[解決済み】マルチパート識別子をバインドできない
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
[解決済み] MySQLのリモート接続を有効にします。エラー 1045 (28000)。ユーザーへのアクセスが拒否されました