一般に、mysql に接続できない状況がいくつかあります。
1. パスワードが間違っています。
2. Mysql は他の IP の接続を許可するように設定されていません。
ここで説明するのは、Linux 上の mysql には両方のケースが存在するということです。私たちの解決策は比較的単純で、最初のステップは設定を変更すること、2 番目のステップはパスワードを変更すること、3 番目のステップはすべての IP が接続できるようにアクセス許可を設定すること、4 番目のステップは設定を更新して保存することです。有効にするには、最後に 1 回確認します。とても単純なことではありませんか。始めましょう:
1. 構成ファイル my.cnf を変更します。このファイルはどこにあるので、サーバーのコマンド ラインに次の文を入力して my.cnf ファイルを開きます。
vi /etc/my.cnf
2. 開いたら、設定ファイル[mysqld]配下にskip-grant-tablesを追加します。シンプル: キーボードの Insert キーを押すと、カーソルが点滅し、入力できることを示します。入力した後、自由に Shift+: 2 つのキーを同時に押し、「!wq」と入力して終了します。
[mysqld]
skip-grant-tables
3. 次に、空のパスワードを持つ root ユーザーを使用して MySQL に接続し、root パスワードを変更します。次の文を入力します (次の文はパスワードを使用する必要はありません)。
mysql -u root
4. 次に、次の状態に入ります。
mysql>
5. mysql の後に次のように入力します。use
mysql;
次に、次のように入力します: update user set password=password('123456') where User='root';
次の 2 つの文を入力して、root ユーザーのパスワードを 123456 に変更します。
mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
注: 一般に、上記 2 つの文は解決できますが、(mysql の新しいバージョンの問題のようです。パスワード フィールドのバージョンがなくなり、authentication_string に変更されました)。そこで、次の文を使用します。
ユーザーを更新するには、認証文字列=パスワード('123456') ここでユーザー='ルート';
6. 変更を有効にするために、変更後に忘れずに更新してください。入力:flush
privileges;
mysql> update user set password=password('123456') where User='root';
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> flush privileges;
7. 最後に次のように入力します。exit退出
mysql> update user set password=password('123456') where User='root';
ERROR 1046 (3D000): No database selected
mysql> use mysql;
Database changed
mysql> update user set password=password('123456') where User='root';
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> exit
8. 戻って、my.cnf で構成したばかりの文 (上記の手順 1 と 2) を削除し、手順 2で Skip-grant-tables を削除して保存することを忘れないでください。
9. エキサイティングな時間がやって来ました。新しいパスワードでログインできるようになります。急いでnavicatで確認してみます。リモート接続している場合は、以下のホスト IP アドレスを Linux サーバーの IP に変更してください。
10. 前回の変更は完了しましたが、すべてのデバイスがリモート データベースにアクセスできるようにしたいと考えています。
1. Linux 上の root アカウントとしてホストにログインします。
2. ホスト上の MySQL にログインします。
mysql -uroot -p123456
3. 最初に元の root@%
ユーザーを削除します (以前にユーザーを作成していない場合は、この手順をスキップします)
ユーザー 'root'@'%' を削除します。
4 番目に、削除が成功したら、ユーザーを作成します。 root@%
'123456' によって mysql_native_password で識別されるユーザー 'root'@'%' を作成します。
5.その後、承認します
付与オプションを使用して *.* のすべてを 'root'@'%' に付与します。
6. 設定を更新する
フラッシュ権限。
7. 終了
出口;