[解決済み] リモートコネクション Mysql Ubuntu
質問
何らかの理由で、MySQL サーバーにリモートで接続することができなくなりました。すべて試しましたが、まだエラーが発生します。
root@server1:/home/administrator# mysql -u monty -p -h www.ganganadores.cl
Enter password:
ERROR 1045 (28000): Access denied for user 'monty'@'server1.ganganadores.cl' (using password: YES)
さて、試しに
GRANT ALL ON *.* to monty@localhost IDENTIFIED BY 'XXXXX';
GRANT ALL ON *.* to monty@'%' IDENTIFIED BY 'XXXXXX';`
を実行しても、何も起こりません。 何が間違っているのでしょうか?
EDIT
:
my.cnf
は、bind ip をコメントアウトしています。
どのように解決するのですか?
MySQL を localhost 以外に公開するには、次の行を追加する必要があります。
mysqlバージョン5.6以下の場合
でコメントアウトされていない
/etc/mysql/my.cnf
で、ループバックではなく自分のコンピュータのIPアドレスに割り当ててください。
mysqlバージョン5.7以上の場合
でコメントアウトされていない
/etc/mysql/mysql.conf.d/mysqld.cnf
で、ループバックではなく自分のコンピュータのIPアドレスに割り当ててください。
#Replace xxx with your IP Address
bind-address = xxx.xxx.xxx.xxx
または
bind-address = 0.0.0.0
IPを指定したくない場合は
その後、MySQLを停止し、新しいmy.cnfのエントリで再起動します。起動したらターミナルに移動し、以下のコマンドを入力します。
lsof -i -P | grep :3306
このように、xxxの部分にあなたの実際のIPが表示されるはずです。
mysqld 1046 mysql 10u IPv4 5203 0t0 TCP xxx.xxx.xxx.xxx:3306 (LISTEN)
上記のステートメントが正しく返された場合、リモートユーザーを受け入れることができます。しかし、リモートユーザが正しい権限で接続するためには、次のように localhost と '%' の両方でそのユーザを作成する必要があります。
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';
にしてから
GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';
で、最後に
FLUSH PRIVILEGES;
EXIT;
上記のように同じユーザーを作成していない場合、ローカルにログオンすると、ローカルホストの基本権限を継承し、アクセスに問題が発生する可能性があります。myuser が持つアクセス権を制限したい場合は、GRANT ステートメントの構文について読む必要があります。 こちら もし、これだけやってもまだ問題があるようなら、追加のエラー出力と my.cnf の適切な行を投稿してください。
注意: lsof が返されないか、見つからない場合は、インストールすることができます。 こちらへ を参照してください。lsof は物事を動かすのに必要ではありませんが、物事が期待通りに動いていないときには非常に便利です。
UPDATE: もし、追加/変更後に
bind-address
を
my.cnf
が動作しない場合、それが最初に宣言された場所に行って変更してください。
/etc/mysql/mariadb.conf.d/50-server.cnf
関連
-
mysqlのデータ圧縮性能比較 詳細
-
MySQLでテーブルを削除します。親行が削除または更新できません: 外部キー制約に失敗しました。
-
Unknown character set.を解決する。MySQLデータベースインポート時の'utf8mb4'エラーの解消
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] MySQLでdatetimeとtimestampのどちらのデータ型を使用すべきですか?
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] エラー 1698 (28000)。ユーザー 'root'@'localhost' のアクセスが拒否されました。
-
[解決済み] MySQL ERROR 1045 (28000)。ユーザー 'bill'@'localhost' (使用パスワード: YES)のアクセスが拒否されました。
-
[解決済み】macOSでbrew install mysqlをする。
-
[解決済み] Linux端末からmysqlにログインし、データベースを照会する方法
最新
-
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データ型の詳細
-
MySQLインデックスベースストレステストの実装
-
SpringBootのMySQLへの接続は、バックエンドのインターフェイスの操作方法を書き込むためのデータを取得するために
-
mysqlインデックスが長すぎる特殊なキーが長すぎる解決策
-
[解決済み] datetimeの挿入時に文字列から日付や時刻を変換すると、変換に失敗する
-
mysql5.7のインストールと、無料・長期利用を目的としたNavicateの導入プロセスについて
-
MySQL 接続タイムアウト。エラー SQLSTATE[HY000] [2002] 接続がタイムアウトしました 解決済み
-
PostMan レポート エラー: 接続 ECONNREFUSED 127.0.0.1:port number
-
[解決済み] KEYキーワードは何を意味するのか?
-
[解決済み] SQLでカラムに最大値を持つ行のみを選択する [重複]。