mysqlのパスワード忘れとログインエラーの問題を詳しく解説
以下のエディターは、mysqlパスワード忘れとログインエラーの問題について簡単に説明します。編集者はこれがとても良いものだと思ったので、皆さんの参考として今から共有します。エディターに従って見てみましょう。
mysql ログイン パスワードを忘れましたか?実際、解決策は、メインの 設定ファイル に「承認テーブルをスキップ」パラメータを追加するだけです。 mysqlのcnf!
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 に追加します.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 -p123456 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111) [root@test-huanqiu ~]# ps -ef|grep mysql root 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 root 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 の インストールの権限を設定していない可能性があります。 ディレクトリとデータ ディレクトリを 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) mysql サーバー 192.168.1.14 の my.cnf ファイルは、このマシンを許可しない、bind_address アドレス バインディングで構成されています。接続;
4) Skip_networking は mysql サーバー 192.168.1.14 の my.cnf ファイルで構成されます。MySQL はローカル ソケット経由でのみ接続できます (ソケット接続はローカル接続のデフォルトの方法でもあります)。 /IP Monitoring;
エラー 1045 (28000): ユーザー 'root のアクセスが拒否されました。 '@'XXXX' (パスワードを使用: YES)
以上がmysqlのパスワード忘れとログインエラーの問題を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











ビッグ データ構造の処理スキル: チャンキング: データ セットを分割してチャンクに処理し、メモリ消費を削減します。ジェネレーター: データ セット全体をロードせずにデータ項目を 1 つずつ生成します。無制限のデータ セットに適しています。ストリーミング: ファイルやクエリ結果を 1 行ずつ読み取ります。大きなファイルやリモート データに適しています。外部ストレージ: 非常に大規模なデータ セットの場合は、データをデータベースまたは NoSQL に保存します。

MySQL クエリのパフォーマンスは、検索時間を線形の複雑さから対数の複雑さまで短縮するインデックスを構築することで最適化できます。 PreparedStatement を使用して SQL インジェクションを防止し、クエリのパフォーマンスを向上させます。クエリ結果を制限し、サーバーによって処理されるデータ量を削減します。適切な結合タイプの使用、インデックスの作成、サブクエリの使用の検討など、結合クエリを最適化します。クエリを分析してボトルネックを特定し、キャッシュを使用してデータベースの負荷を軽減し、オーバーヘッドを最小限に抑えます。

PHP で MySQL データベースをバックアップおよび復元するには、次の手順を実行します。 データベースをバックアップします。 mysqldump コマンドを使用して、データベースを SQL ファイルにダンプします。データベースの復元: mysql コマンドを使用して、SQL ファイルからデータベースを復元します。

MySQLテーブルにデータを挿入するにはどうすればよいですか?データベースに接続する: mysqli を使用してデータベースへの接続を確立します。 SQL クエリを準備します。挿入する列と値を指定する INSERT ステートメントを作成します。クエリの実行: query() メソッドを使用して挿入クエリを実行します。成功すると、確認メッセージが出力されます。

MySQL 8.4 (2024 年時点の最新の LTS リリース) で導入された主な変更の 1 つは、「MySQL Native Password」プラグインがデフォルトで有効ではなくなったことです。さらに、MySQL 9.0 ではこのプラグインが完全に削除されています。 この変更は PHP および他のアプリに影響します

PHP で MySQL ストアド プロシージャを使用するには: PDO または MySQLi 拡張機能を使用して、MySQL データベースに接続します。ストアド プロシージャを呼び出すステートメントを準備します。ストアド プロシージャを実行します。結果セットを処理します (ストアド プロシージャが結果を返す場合)。データベース接続を閉じます。

PHP を使用して MySQL テーブルを作成するには、次の手順が必要です。 データベースに接続します。データベースが存在しない場合は作成します。データベースを選択します。テーブルを作成します。クエリを実行します。接続を閉じます。

Oracle データベースと MySQL はどちらもリレーショナル モデルに基づいたデータベースですが、Oracle は互換性、スケーラビリティ、データ型、セキュリティの点で優れており、MySQL は速度と柔軟性に重点を置いており、小規模から中規模のデータ セットに適しています。 ① Oracle は幅広いデータ型を提供し、② 高度なセキュリティ機能を提供し、③ エンタープライズレベルのアプリケーションに適しています。① MySQL は NoSQL データ型をサポートし、② セキュリティ対策が少なく、③ 小規模から中規模のアプリケーションに適しています。
