CentOS 7 で MySQL 5.7.23 をアップグレードする際の落とし穴と解決策

CentOS 7 で MySQL 5.7.23 をアップグレードする際の落とし穴と解決策

序文

最近、CentOS 7 で MySQL 5.7.23 をアップグレードする際に落とし穴を発見しました。MySQL 5.7.23 にアップグレードされたクラスターを例に挙げます。

私たちの環境では、開いているファイル記述子の数のパラメータopen_files_limitはMySQL 5.6.21では一律65535に設定されていますが、CentOS 7のMySQL 5.7.23にインストールされているopen_files_limitパラメータのデフォルト値は5000です。

そうでない場合、多数のパーティション テーブルを持つクラスターでは、開いているファイルの数が多すぎると、データベースはエラーを報告します。

理由は次のとおりです。

1. CentOS 7 では MySQL 5.7.23 がインストールされ、サービス管理が sysvinit (service mysql start) から systemd (systemctl start mysqld.service) に変更されました。

2. CentOS 7でのLimitの設定は、次の設定ファイルによって決まります。

グローバル設定: /etc/systemd/system.conf (DefaultLimitNOFILE=65535 など)

サービス設定: [サービス] デフォルト値は5000で、LimitNOFILEは65535に変更する必要があります

【テスト】

1. グローバル設定ファイル /etc/systemd/system.conf

2. サービス設定ファイル /usr/lib/systemd/system/mysqld.service

3. MySQL設定ファイル /etc/my.cnf

【結論は】

1. MySQLサービスをsystemdで管理する場合、次の3つの設定ファイルでopen_files_limitパラメータを同時に設定すると、最終的にはサービス設定ファイルが優先されます。

2. サービス関連の設定値がコメントアウトされている場合は、グローバル設定ファイルが優先されます。

【解決】

1. 単体修理方法は以下の手順に従ってください

#設定を変更する vim /usr/lib/systemd/system/mysqld.service

#リロード systemctl daemon-reload

#有効にするにはサービスを再起動します systemctl restart [email protected]

2. インストールパッケージの修復方法:次の2つのソースファイルを修正し、5000を65535に増やし、再パッケージ化してリリースします。これにより、新しいバージョンはデフォルトでMySQL5.6.21と同じ構成を維持します。

要約する

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル
  • MySQL 5.7 の Docker バージョンを MySQL 8.0.13 にアップグレードし、データを移行する
  • phpstudy2018 MySQL 5.5 から 5.7 へのアップグレードに関するチュートリアル (画像とテキスト付き)
  • MySQL 5.7 にアップグレードした後に開発者が注意しなければならない落とし穴
  • MySQL アップグレードのベストプラクティス
  • phpStudy で MySQL バージョンを 5.7.17 にアップグレードする方法
  • Windows で MySQL 5.6 を 5.7 にアップグレードする方法
  • Windows (x86、64 ビット) で MySQL 5.7.17 無料インストール バージョンをアップグレードするための詳細なチュートリアル
  • MySQL データベースのアップグレードにおけるいくつかの「落とし穴」

<<:  docker で Apollo をデプロイする詳細なチュートリアル

>>:  Vue 円形パーセンテージ プログレスバー コンポーネントの機能の実装

推薦する

MySQLは既存のコンテンツを保持し、後でコンテンツを追加します

このコマンドは、データ テーブル ff_vod を変更し、vod_url フィールドの内容の後に 9...

制限およびオフセット ページング シナリオを使用すると速度が遅くなるのはなぜですか?

質問から始めましょう5 年前、私が Tencent にいたとき、ページング シナリオでは MySQL...

CSS3 で背景ぼかしを実現する 3 つの方法 (要約)

1. 通常の背景ぼかしコード: <スタイル> html, 体 { 幅: 100%; 高...

CocosCreatorを使ってシューティングゲームを作る方法

製造手順を分析します。 1. リソースを準備してシーンを構築するオンラインでリソースを探すか、私のリ...

React+axios は github 検索ユーザー機能を実装します (サンプル コード)

負荷リクエスト成功リクエストに失敗しました cmdをクリックし、ファイルパスでEnterキーを押しま...

Excel エクスポートは docker 環境では常に失敗する

Excel のエクスポートは、docker 環境では常に失敗します。最も直接的な原因は、中国語フォン...

MySQLデータベースの操作とメンテナンスのデータ復旧方法

これまでの 3 つの記事では、論理バックアップと物理バックアップを含む、MySQL データベースの一...

Vue でクラスとスタイルを使用して v-bind バインディングを使用するいくつかの方法

要素にクラスを追加/削除することは、プロジェクト開発では非常に一般的な動作です。たとえば、Web サ...

TLS暗号化通信を使用してDockerにリモート接続する詳細な例

デフォルトでは、Docker はネットワーク化されていない UNIX ソケット上で実行されます。オプ...

MySQL 5.7.21 winx64 無料インストールバージョン設定方法グラフィックチュートリアル

MySQL 5.7.21 winx64無料インストールバージョンの設定方法、参考までに、具体的な内容...

Docker で最初のアプリケーションをデプロイする方法

前回の記事では、Docker Desktop をインストールし、Kubernetes を有効にしまし...

Linux システムのパフォーマンスを分析するための top コマンドの詳細な説明

Linux topコマンドの紹介top コマンドは、Linux でよく使用されるパフォーマンス分析ツ...

Mysql GTID Mha 設定方法

Gtid + Mha + Binlog サーバー構成: 1: テスト環境OS: CentOS 6.5...

WeChatアプレットを使用して天井効果を実現する方法の例

目次1. 実装2. 問題点3. より良い実装方法があるかどうか検討する要約する背景は日付のタイトルで...

HTML の基礎: HTML コンテンツの詳細

まずは本体から始めましょう:ウェブページを閲覧するとき、最初に目に留まるのは通常、ページの背景です。...