ホームページ  >  記事  >  データベース  >  mysqlのパスワード忘れとログインエラーの問題の解決策を共有する

mysqlのパスワード忘れとログインエラーの問題の解決策を共有する

黄舟
黄舟オリジナル
2017-03-23 13:29:571327ブラウズ

以下のエディターは、mysqlパスワード忘れとログインエラーの問題について簡単に説明します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターに従って見てみましょう

mysql ログイン パスワードを忘れましたか? 実際、解決策は、mysql my のメイン設定ファイルに「承認テーブルをスキップ」パラメータを選択する行を追加するだけです。ああ!

my.cnfに次の行を追加します:

[root@test-huanqiu ~]# vim /etc/my.cnf            
  //在[mysqld]区域里添加
........
skip-grant-tables 
                     
 //跳过授权表

次にmysqlサービスを再起動してパスワードなしでログインします

[root@test-huanqiu ~]# /etc/init.d/mysqld restart

ログイン後にパスワードをリセットします

[root@test-huanqiu ~]# mysql 
mysql> select host,user,password from mysql.user;
+--------------------+------+-------------------------------------------+
| host | user | password |
+--------------------+------+-------------------------------------------+
| localhost | root | *481ACA1BD6D1E86221244904E9C0FABA33B40B84 |
| host-192-168-1-117 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| host-192-168-1-117 | | |
+--------------------+------+-------------------------------------------+
6 rows in set (0.00 sec)

mysql> update mysql.user set password=password("123456") where host="localhost" and user="root";
Query OK, 1 row affected (0.02 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

mysql> select host,user,password from mysql.user;
+--------------------+------+-------------------------------------------+
| host | user | password |
+--------------------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| host-192-168-1-117 | root | |
| 127.0.0.1 | root | |
| ::1 | root | |
| localhost | | |
| host-192-168-1-117 | | |
+--------------------+------+-------------------------------------------+
6 rows in set (0.00 sec)

mysql>

my.cnfに追加した行を再度追加しますコメントしてからmysqlを再起動してください

[root@test-huanqiu ~]# vim /etc/my.cnf........#skip-grant-tables
[root@test-huanqiu ~]# /etc/init.d/mysqld restart
[root@test-huanqiu ~]# mysql -p123456mysql>

------------------------------------- --- --------------------------------------------------- --- ----------------------------------

落とし穴発見:

mysql は以前に完全にロードされていましたが、バックアップと復元の後、以前のパスワードを使用してログインできないことがわかりました。

上記の方法でパスワードなしでログインし、パスワードをリセットしてもログインできません。

ついに、mysql.user テーブルの内容がクリアされたことがわかりました。

mysql> select host,user,password from user;
Empty set (0.00 sec)

解決策:

データを挿入して、パスワードをリセットしてください

mysql> insert into user(host,user,password) values("localhost","root","123456");
Query OK, 1 row affected, 3 warnings (0.01 sec)

mysql> select host,user,password from user;
+-----------+------+----------+
| host | user | password |
+-----------+------+----------+
| localhost | root | 123456 |
+-----------+------+----------+
1 row in set (0.00 sec)

mysql> update mysql.user set password=password("123456") where host="localhost" and user="root";
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+-------------------------------------------+
1 row in set (0.00 sec)
mysql> insert into user(host,user,password) values("127.0.0.1","root","123456");
Query OK, 1 row affected, 3 warnings (0.00 sec)

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | 123456 |
+-----------+------+-------------------------------------------+
2 rows in set (0.00 sec)

mysql> update mysql.user set password=password("123456") where user="root";
Query OK, 1 row affected (0.00 sec)
Rows matched: 2 Changed: 1 Warnings: 0

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host | user | password |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+-------------------------------------------+

その後、リセットされたパスワードを使用して通常にログインしてください。

---------------------------------------------- --- --------------------------------------------------- --- ------------------
mysql ログイン エラー 1:

[root@test-huanqiu ~]# mysql -p123456ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)
[root@test-huanqiu ~]# ps -ef|grep mysqlroot 28279 1 0 12:55 ? 00:00:00 /bin/sh /usr/local/mysql//bin/mysqld_safe --datadir=/data/mysql/data 
--pid-file=/data/mysql/data/mysql.pidmysql 29059 28279 0 12:55 ? 00:00:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql/ 
--datadir=/data/mysql/data --plugin-dir=/usr/local/mysql//lib/plugin --user=mysql --log-error=/data/mysql/data/mysql-error.log 
--pid-file=/data/mysql/data/mysql.pid --socket=/usr/local/mysql/var/mysql.sock --port=3306root 30726 11268 0 12:58 pts/2 00:00:00 grep mysql

現在の mysql.sock ファイル パスは /usr/ であることがわかります。 local/mysql/var/mysql.sock、

解決策: ソフトリンクを作成します

[root@test-huanqiu ~]# ll /usr/local/mysql/var/mysql.sock
rwxrwxrwx. 1 mysql mysql 0 Nov 29 12:55 /usr/local/mysql/var/mysql.sock
[root@test-huanqiu ~]# rm -f /var/lib/mysql/mysql.sock
[root@test-huanqiu ~]# ln -s /usr/local/mysql/var/mysql.sock /var/lib/mysql/mysql.sock

これなら問題ありません

[root@test-huanqiu ~]# mysql -p123456
mysql>

-------------- ------------ -------------------------------------- ------------ ------------------------
mysql起動時のエラー:

Starting MySQL.... ERROR! The server quit without updating PID file (/data/mysql/data/mysql.pid).

試した解決策:

(1) 権限の問題

mysql.pid ファイルに書き込み権限がない可能性があります。mysql の installation ディレクトリとデータ ディレクトリの権限を mysql 起動に設定します。ユーザー権限。たとえば、 mysql:mysql 権限に変更します

(2) プロセス内に既に mysql プロセスが存在する可能性があります

ps -ef|grep mysql がある場合は、mysql プロセスを強制終了し、mysql を再起動してみてください。

( 3) mysql がマシンに複数回インストールされており、サービスの起動に影響を与えるデータが残っている可能性があります。
mysql データ ディレクトリに移動して確認してください。mysql-bin.index が存在する場合は、それが原因です。

(4) mysql の起動時に設定ファイルを指定しない場合、/etc/my.cnf 設定ファイルが使用されます。このファイルを開いて、[mysqld] セクションに指定されたデータ ディレクトリがあるかどうかを確認してください。

datadir = /data/mysql/data のような設定を [mysqld] に追加します

(5) Skip-federated field の問題

my.cnf ファイルにコメントされていない Skip- があるかどうかを確認します。はフェデレーションフィールドなので、すぐにコメントアウトしてください。

(6) エラー ログ ディレクトリが存在しません

my.cnf ファイルに移動して、ログ構成パスがあるかどうかを確認します。存在する場合は、ログ ディレクトリのアクセス許可が存在するかどうかを確認します。 mysql 起動ユーザー権限です。

(7) Selinux がトラブルの原因です。centos システムの場合、デフォルトで selinux がオンになっています

それをオフにして、/etc/selinux/config を開き、SELINUX=enforcing を SELINUX=disabled に変更します。を保存して終了し、マシンを再起動してみてください。

(8) mysqlデータを再初期化してみてください

mysqlのインストールディレクトリに切り替えます

./scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/data/mysql/data --user =mysql

-------------------------------------------------

mysqlを使用してくださいmysql にログインするためのサーバー認証情報を使用すると、エラーは次のとおりです:

ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.14' (111)

原因は次のとおりです。

1) ネットワーク接続に問題がある可能性があります。リモート ping 192.168.1.14 は正常に ping できるため、この状況は解消されます。

2) mysql サーバー 192.168.1.14 の iptables は、ポート 3306 の接続のホワイトリストを作成しました。

3)bind_address アドレス バインディングは、mysql サーバー 192.168.1.14 の my.cnf ファイルで構成されており、ローカル接続は許可されていません。

4) Skip_networking は、mysql サーバー 192.168.1.14 の my.cnf ファイルで構成されます。これは MySQL を使用し、ローカル ソケット (ソケット接続は

ローカル接続のデフォルトの方法でもあります) 経由でのみ接続でき、 TCP を放棄します。 /IP モニタリング;

5) DNS 解決の問題をトラブルシューティングするには、mysql サーバー 192.168.1.14 の my.cnf ファイルに Skip_name_resolve が設定されているかどうかを確認します。このパラメータを追加した後は、ホスト名による接続方法はサポートされません。


6) --port の問題を確認します。mysql サーバー上の MySQL ポート 192.168.1.14 がデフォルトの 3306 ではない可能性があります。たとえば、ポート 3307 です。このように、次のコードを追加する必要があります。リモート接続時は -port=3307


7) ユーザーとパスワードの問題のトラブルシューティング 実際、ユーザーとパスワードのエラーには 111 が表示されないため、ユーザー パスワードの問題は解消されます


エラー 1045 (28000): ユーザーのアクセスが拒否されました。 'root'@'XXXX' (パスワードを使用: YES)

以上がmysqlのパスワード忘れとログインエラーの問題の解決策を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。