MySQLシングルインスタンスの一般的な障害の概要
- 症状1:エラー2002(HY000):ソケット '/data/mysql/mysql.sock'を介してローカルMySQLサーバーに接続できない
- 症状2:エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)
- 症状3:データベースへのリモート接続を使用すると、データベースへのリモート接続が遅いという問題が時々発生します
- 症状4:ファイルを開けません: 'xxx_forums.MYI'(エラー番号:145)
- 故障现象五:エラー1129(HY000):ホスト 'xxx.xxx.xxx.xxx'は、多くの接続エラーのためにブロックされています。「mysqladmin flush-hosts」でブロックを解除します
- 症状6:接続が多すぎる
- 故障现象七:警告:誰でも書き込み可能な設定ファイル '/etc/my.cnf'は無視されますエラー!MySQLは実行中ですが、PIDファイルが見つかりませんでした
- 故障现象八:InnoDB:エラー:14178ページのログシーケンス番号29455369832、InnoDB:将来のバージョンです!現在のシステムログシーケンス番号
症状1:エラー2002(HY000):ソケット '/data/mysql/mysql.sock'を介してローカルMySQLサーバーに接続できない
エラー:
エラー2002(HY000):ソケット '/data/mysql/mysql.sock'を介してローカルMySQLサーバーに接続できません
問題分析:
上記の状況は通常、データベースが起動していないか、データベースポートがファイアウォールによってブロックされていることが原因です。
解決:
データベースを起動するか、ファイアウォールのデータベースリスニングポートを開きます
症状2:エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)
报错:エラー1045(28000):ユーザー 'root' @ 'localhost'のアクセスが拒否されました(パスワードを使用:NO)
問題分析:
パスワードが正しくない、またはアクセスできない
解決:
1)my.cnfのメイン構成ファイルを変更し、[mysqld]にskip-grant-tablesを追加して、データベースを再起動します。最終変更パスワードコマンドは次のとおりです。
mysql> use mysql;
mysql> update user set password=password("123456") where user="root";
次に、追加したskip-grant-tablesパラメータを削除し、データベースを再起動して、新しいパスワードでログインします。
2)再認証します。コマンドは次のとおりです。
mysql> grant all on *.* to 'root'@'mysql-server' identified by '123456';
症状3:データベースへのリモート接続を使用すると、データベースへのリモート接続が遅いという問題が時々発生します
データベースへのリモート接続を使用すると、データベースへのリモート接続が遅いという問題が時々発生します
問題分析:
MySQLホストのDNSクエリが遅い場合、またはクライアントホストが多い場合、接続は遅くなります。開発マシンは外部ネットワークに接続できないため、DNS解決を完了できないため、接続が非常に遅い理由を理解できます。アップ。
解決:
my.cnfメイン構成ファイルを変更し、[mysqld]の下にskip-name-resolveを追加し、データベースを再起動して解決します。ホスト名認証は今後の認証では使用できなくなることに注意してください。
症状4:ファイルを開けません: 'xxx_forums.MYI'(エラー番号:145)
エラー:
ファイルを開けません: 'xxx_forums.MYI'。(errno:145)
問題分析:
1)サーバーが異常終了している、データベースが配置されているスペースがいっぱいである、またはその他の不明な理由によりデータベーステーブルが損傷している。
2)オペレーティングシステムでデータベースファイルを直接コピーして移動すると、ファイルがグループ化されるため、このエラーが発生する可能性があります。
エラー。
解決:
データテーブルを修復するには、次の2つの方法を使用できます(最初の方法は、独立したホストユーザーにのみ適しています)。
1)myisamchkを使用するMySQLには、ユーザーデータテーブルをチェックおよび修復するためのツール、myisamchkが付属しています。通常の状況では、これの下でのみmyisamchkコマンドを実行できます。一般的に使用される修復コマンドは次のとおりです。myisamchk-rデータファイルディレクトリ/データテーブル名.MYI;
2)phpMyAdminで修復するphpMyAdminにはデータテーブルを修復する機能があり、テーブルを入力後、「操作」をクリックし、下の「テーブルメンテナンス」の「テーブルの修復」をクリックします。
注:上記の2つの修復方法を実行する前に、データベースをバックアップする必要があります。ファイルの所属グループを変更します(独立したホストユーザーにのみ適しています)。
データベースファイルをコピーするプロセス中、データベースファイルは、MySQLを実行しているアカウントによる読み取りと書き込みができるように設定されていません(通常、LinuxおよびFreeBSDユーザーに適用されます)。
故障现象五:エラー1129(HY000):ホスト 'xxx.xxx.xxx.xxx'は、多くの接続エラーのためにブロックされています。「mysqladmin flush-hosts」でブロックを解除します
エラー:
エラー1129(HY000):ホスト 'xxx.xxx.xxx.xxx'は、多くの接続エラーのためにブロックされています。「mysqladmin flush-hosts」でブロックを解除します
問題分析:
mysqlデータベースパラメータが原因で:max_connect_errors(システムデフォルト10)mysqldは、接続要求が途中で中断された多数の(max_connect_errors)ホスト「hostname」を受信し、mysqldサービスに接続できなくなりました。短時間に中断されたデータベース接続が多すぎるためにブロックされた(mysqlデータベースのmax_connection_errorsの最大値を超えた)。
解決:
1)mysqladmin flush-hostsコマンドを使用してキャッシュをクリアします。コマンドの実行方法は次のとおりです。
mysqladmin -uroot -p -h 192.168.241.48 flush-hosts Enter password:
2)mysql構成ファイルを変更し、[mysqld]の下に追加してmax_connect_errors=1000
、MySQLを再起動します。
症状6:接続が多すぎる
クライアントエラー:接続が多すぎます
問題分析:
接続数がMysqlの最大接続制限を超えています。
解決:
1)my.cnf構成ファイルの接続数を増やしてから、MySQLサービスを再起動します。
max_connections = 10000
2)接続の最大数を一時的に変更します。再起動後は有効になりません。my.cnfの構成ファイルを変更する必要があります。変更すると、次回の再起動時に有効になります。
set GLOBAL max_connections=10000;
故障现象七:警告:誰でも書き込み可能な設定ファイル '/etc/my.cnf'は無視されますエラー!MySQLは実行中ですが、PIDファイルが見つかりませんでした
エラー:
警告:誰でも書き込み可能な設定ファイル '/etc/my.cnf'は無視されますエラー!MySQLは実行中ですが、PIDファイルが見つかりませんでした
問題分析:
MySQL構成ファイル/etc/my.cnfに不正な権限があります。
解決:
chmod 644 /et/my.cnf
故障现象八:InnoDB:エラー:14178ページのログシーケンス番号29455369832、InnoDB:将来のバージョンです!現在のシステムログシーケンス番号
エラー:
InnoDB:エラー:14178ページのログシーケンス番号29455369832
InnoDB:は未来です!現在のシステムログシーケンス番号29455369832
問題分析:
innodbデータファイルが破損しています。
解決:
my.cnf構成ファイルを変更し、[mysqld]の下にinnodb_force_recovery = 4を追加し、データベースの起動後にデータファイルをバックアップしてから、このパラメーターを削除し、バックアップファイルを使用してデータを復元します。