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 mysqld@replica01.service

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 円形パーセンテージ プログレスバー コンポーネントの機能の実装

推薦する

Windows および Linux での Redis のインストールとデーモン設定

# Windows および Linux 上の Redis のインストール デーモン構成Redis の...

Dockerコンテナ間の通信を実装する方法

シナリオ: laradock 開発環境 (php7.3+mysql5.7) がローカルに構築されてい...

Vue Element フロントエンドアプリケーション開発: Vuex での API ストアビューの使用

目次概要1. フロントエンドとバックエンドの分離とWeb APIの優先ルート設計2. Axiosネッ...

Nginx サーバーが Systemd カスタム サービス プロセス分析を追加

1. nginxを例に挙げるyumコマンドを使用してNginxをインストールしましたSystemd ...

IE8 ベータ 1 には注意が必要な 2 つの領域があります

<br />関連記事: Web スキル: 複数の IE バージョンを共存させるソリューシ...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

Centos7 に PHP と Nginx をインストールする詳細なチュートリアル

Centos のサーバー側への適用がますます普及するにつれて、Centos7 もますます使用されるよ...

現在使用されている設定ファイル my.cnf を表示する mysql メソッド (推奨)

my.cnfは、MySQL の起動時に読み込まれる設定ファイルです。通常は MySQL インストー...

mysql での rpm インストールの詳細な説明

インストールとアンインストールの表示 # rpm -qa | grep mysql を表示 # アン...

MySQL のデータベース パフォーマンスに影響を与える要因の説明

データベースのパフォーマンスに関する話面接では、「データベースにどのくらい精通していますか?」など、...

動的および静的分離を実装するための Nginx サンプル コード

この記事のシナリオと組み合わせて、Nginx と Java 環境 (SpringBoot プロジェク...

SSH接続を介してXshellを使用したUbuntu 20.04で報告されたサービス問題の詳細な説明

1. 最近、Ubuntu の新しいバージョンをインストールしました。/etc/ssh/sshd_co...

Vue ログインページ用の動的パーティクル背景プラグインの実装

目次動的パーティクル効果は次のとおりです。プラグインをインストールする動的パーティクル効果は次のとお...

プライベートレジストリ内の画像を照会または取得する方法

Dockerはプライベートレジストリ内のイメージを照会または取得するために、 docker 検索 1...

Vueを使用してタイマー機能を実装する

この記事の例では、タイマー機能を実装するためのVueの具体的なコードを参考までに共有しています。具体...