忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

忘れられたMySQLパスワードとログインエラーの問題について簡単に説明します

MySQL ログイン パスワードを忘れた場合、解決方法は実はとても簡単です。MySQL メイン構成ファイル my.cnf に「skip authorization table」パラメータ選択の行を追加するだけです。

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

[root@test-huanqiu ~]# vim /etc/my.cnf //[mysqld]エリアに追加
........
skip-grant-tables //認可テーブルをスキップする

その後、mysqlサービスを再起動すると、パスワードなしでログインできます。

[root@test-huanqiu ~]# /etc/init.d/mysqldを再起動します

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

[root@test-huanqu ~]#mysql 
mysql> mysql.user からホスト、ユーザー、パスワードを選択します。
+--------------------+------+--------------------------------------------------------+
| ホスト | ユーザー | パスワード |
+--------------------+------+--------------------------------------------------------+
| ローカルホスト | ルート | *481ACA1BD6D1E86221244904E9C0FABA33B40B84 |
| ホスト-192-168-1-117 | ルート | |
| 127.0.0.1 | ルート | |
| ::1 | ルート | |
| ローカルホスト | | |
| ホスト-192-168-1-117 | | |
+--------------------+------+--------------------------------------------------------+
セット内の 6 行 (0.00 秒)

mysql> update mysql.user set password=password("123456") where host="localhost" and user="root";
クエリは正常、1 行が影響を受けました (0.02 秒)
一致した行: 1 変更された行: 1 警告: 0

mysql> 権限をフラッシュします。
クエリは正常、影響を受けた行は 0 行 (0.01 秒)

mysql> mysql.user からホスト、ユーザー、パスワードを選択します。
+--------------------+------+--------------------------------------------------------+
| ホスト | ユーザー | パスワード |
+--------------------+------+--------------------------------------------------------+
| ローカルホスト | ルート | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ホスト-192-168-1-117 | ルート | |
| 127.0.0.1 | ルート | |
| ::1 | ルート | |
| ローカルホスト | | |
| ホスト-192-168-1-117 | | |
+--------------------+------+--------------------------------------------------------+
セット内の 6 行 (0.00 秒)

マイSQL> 

my.cnfに追加された行を再度コメントアウトし、mysqlを再起動します。

[root@test-huanqiu ~]# vim /etc/my.cnf
........
#許可テーブルをスキップする

[root@test-huanqiu ~]# /etc/init.d/mysqldを再起動します

[root@test-huanqu ~]# mysql -p123456
マイSQL>

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

穴が見つかりました:

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

上記の方法を使用してパスワードなしでログインし、その後パスワードをリセットしましたが、パスワードをリセットした後もログインできないことがわかります。

最終的に、mysql.user テーブルの内容がクリアされたことが原因であることがわかりました。

mysql> ユーザーからホスト、ユーザー、パスワードを選択します。
空のセット (0.00 秒)

解決する:

データを入力してパスワードをリセットする

mysql> ユーザーに挿入(ホスト、ユーザー、パスワード) 値("localhost","root","123456");
クエリは正常、1 行が影響を受け、3 つの警告 (0.01 秒)

mysql> ユーザーからホスト、ユーザー、パスワードを選択します。
+-----------+------+----------+
| ホスト | ユーザー | パスワード |
+-----------+------+----------+
| ローカルホスト | ルート | 123456 |
+-----------+------+----------+
セット内の 1 行 (0.00 秒)

mysql> update mysql.user set password=password("123456") where host="localhost" and user="root";
クエリは正常、1 行が影響を受けました (0.01 秒)
一致した行: 1 変更された行: 1 警告: 0

mysql> ユーザーからホスト、ユーザー、パスワードを選択します。
+-----------+------+------------------------------------------+
| ホスト | ユーザー | パスワード |
+-----------+------+------------------------------------------+
| ローカルホスト | ルート | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+------------------------------------------+
セット内の 1 行 (0.00 秒)
mysql> ユーザーに挿入(ホスト、ユーザー、パスワード) 値("127.0.0.1","root","123456");
クエリは正常、1 行が影響を受け、3 つの警告 (0.00 秒)

mysql> ユーザーからホスト、ユーザー、パスワードを選択します。
+-----------+------+------------------------------------------+
| ホスト | ユーザー | パスワード |
+-----------+------+------------------------------------------+
| ローカルホスト | ルート | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | ルート | 123456 |
+-----------+------+------------------------------------------+
セット内の 2 行 (0.00 秒)

mysql> mysql.user を更新し、password を password("123456") に設定し、user="root" に設定します。
クエリは正常、1 行が影響を受けました (0.00 秒)
一致した行: 2 変更された行: 1 警告: 0

mysql> ユーザーからホスト、ユーザー、パスワードを選択します。
+-----------+------+------------------------------------------+
| ホスト | ユーザー | パスワード |
+-----------+------+------------------------------------------+
| ローカルホスト | ルート | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| 127.0.0.1 | ルート | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+-----------+------+------------------------------------------+

その後、リセットしたパスワードを使用して通常どおりログインできます。

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

[root@test-huanqu ~]# mysql -p123456
エラー 2002 (HY000): ソケット '/var/lib/mysql/mysql.sock' を介してローカル MySQL サーバーに接続できません (111)

[root@test-huanqiu ~]# ps -ef|grep mysql
ルート 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.pid
mysql 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=3306
ルート 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 11月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-huanqu ~]# mysql -p123456
マイSQL>

----------------------------------------------------------------------------------------------------
mysql を起動すると、エラーが発生します:

MySQL を起動しています... エラー! サーバーは PID ファイル (/data/mysql/data/mysql.pid) を更新せずに終了しました。

試みられた解決策:

(1)許可の問題

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

(2)プロセス内にすでにmysqlプロセスが存在している可能性がある

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

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

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

[mysqld]の下に設定を追加します(例:datadir = /data/mysql/data)

(5)スキップフェデレーションフィールド問題

my.cnf ファイルをチェックして、コメント アウトされていない skip-federated フィールドがあるかどうかを確認します。ある場合は、すぐにコメント アウトします。

(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 にログインすると、次のエラーが表示されます。

エラー 2003 (HY000): '192.168.1.14' の MySQL サーバーに接続できません (111)

考えられる原因は次のとおりです:

1) ネットワーク接続に問題がある可能性があります。リモートから 192.168.1.14 に ping を実行すると、正常に ping が実行され、この問題は解消されます。

2) mysql サーバー 192.168.1.14 の iptables でポート 3306 のホワイトリスト制限が設定されています。

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

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 サーバー 192.168.1.14 の MySQL ポートがデフォルトの 3306 ではなく、たとえばポート 3307 である可能性があります。この場合、リモート接続時に --port=3307 を追加します。

7) ユーザー名とパスワードの問題を確認します。実際、ユーザー名とパスワードが間違っていると、エラー コード 111 は表示されないため、ユーザー名とパスワードの問題は解消されるはずです。

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

MySQL パスワードを忘れた場合やログイン エラーが発生した場合の問題について、上記の簡単な説明は、編集者が皆さんと共有する内容のすべてです。参考になれば幸いです。また、123WORDPRESS.COM をサポートしていただければ幸いです。

以下もご興味があるかもしれません:
  • MySQLパスワードを忘れた場合の解決方法
  • MySQL パスワードを変更する方法と、忘れた MySQL パスワードに対処する方法

<<:  JavaScript は setTimeout を使用してカウントダウン効果を実現します

>>:  Apache での ModSecurity のインストール、有効化、および構成

推薦する

ウェブカラーのコントラストと調和のテクニックの共有

色のコントラストと調和対照的な状況では、色の相互作用は単一の色によって与えられる感覚とは異なります。...

Mysql 日付クエリの詳細な紹介

現在の日付を照会する CURRENT_DATE() を選択します。 CURDATE() を選択する;...

JavaScript 関数の高度な説明

目次関数定義方法関数呼び出し(6種類)これは問題を指摘している厳密モード高階関数閉鎖再帰: 自分自身...

Dockerがコンテナサービスを停止または削除できない問題の解決策

序文今日、開発者から、コンテナ サービスを停止、rm (docker rm -f)、または強制終了で...

psdカット画像をdiv+css形式に変換する

PSD から div css へのウェブページ切り取り例ステップ 1: まず、すべてのタグの内側と外...

Dockerでランナーコンテナを構成する方法

1. ランナーコンテナを作成する mk@mk-pc:~/Desktop$ docker run -d...

Docker ネットワークの原理とカスタム ネットワークの詳細な分析

Docker はホストマシン上のブリッジを仮想化します。コンテナを作成して起動すると、各コンテナには...

docker によってプルされたイメージがどこに保存されるかの詳細な説明

docker によってプルされたコマンドは、デフォルトでは /var/lib/docker/ フォル...

VUEプロジェクトでXSS攻撃に遭遇した実体験

目次序文原因を発見するカスタムフィルタリングルール要約する序文インターネットの急速な発展に伴い、情報...

CSS3 における擬似クラスの一般的な使用法の詳細な説明

before/after 疑似クラスは、要素内に 2 つの追加タグを挿入するのと同じです。最も適した...

Linux における SUID、SGID、SBIT の素晴らしい使い方の詳細な説明

序文Linux のファイル権限管理はとにかく素晴らしいです。SUID、SGID、SBIT の機能を確...

Vue の基本入門: Vuex のインストールと使用

目次1. vuexとは何か2. インストールと導入3. vuexの使用4. プロセスの紹介5. 突然...

反応ルーティングでパラメータを渡すいくつかの方法についての簡単な説明

最初のパラメータ渡し方法は、動的ルーティングパラメータ渡しです。リンクのパス属性を設定することで、ル...

Vue3カプセル化メッセージメッセージプロンプトインスタンス関数の詳細な説明

目次Vue3 カプセル化メッセージプロンプトインスタンス関数スタイルレイアウトカプセル化メッセージ....

MySQL の接続数が多すぎるエラーの原因と解決策

目次概要本日正午、開発およびテスト環境の MySQL サービスで接続数が多すぎるというエラーが報告さ...