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

推薦する

Vue 3 で Vue Router リンクを拡張する方法

序文<router-link> タグは、Vue アプリ内のさまざまなページ間を移動するた...

ネイティブ JS で音楽プレーヤーを実装するためのサンプル コード

この記事では主に、次のように共有されるネイティブ JS 音楽プレーヤーのサンプル コードを紹介します...

Windows システムでの MySQL 8.0.21 インストール チュートリアル (図とテキスト)

インストールの提案: インストールには .exe を使用せず、圧縮パッケージを使用してください。これ...

JavaScript はパスワードボックスの入力検証を実装します

サーバーの負荷を軽減するために、ユーザーが入力するときにフロントエンドページで簡単な検証を実行する必...

Linux gccコマンドの具体的な使い方

01. コマンドの概要gcc コマンドは、GNU がリリースした C/C++ ベースのコンパイラを使...

CentOS8 でローカル yum ソースを構成するための詳細なチュートリアル

centos8 ディストリビューションは、BaseOS および AppStream リポジトリを通じ...

CentOS 8 カスタム ディレクトリ インストール nginx (チュートリアルの詳細)

1. ツールとライブラリをインストールする# PCRE は、Perl 互換の正規表現ライブラリを含...

Mysql 5.6ではユーザー名とパスワードを変更するメソッドが追加されました

まずMySQLにログインする シェル> mysql --user=root mysqlパスワー...

クールなIoT大画面機能を実現するHTML+VUEページング

効果デモ.html <html> <ヘッド> <メタ文字セット=&qu...

Windows 7 64 ビットに最新バージョンの MySQL サーバーをインストールする方法のグラフィック チュートリアル

最近、MySQL データベースを勉強していて、設定ファイルを頻繁に変更したため、MySQL データベ...

負荷分散の基礎知識とnginxを使用した負荷分散の簡単な例

Nginx は、一般的に 7 層の負荷分散に使用できます。この記事では、負荷分散に関する基本的な知識...

Nginx 構成検出サービスのステータスを実装する方法

1. チェックステータスモジュールがインストールされているかどうかを確認します。 [root@loc...

Docker Swarmの概念と使用法の詳細な説明

Docker Swarm は、Docker によって開発されたコンテナ クラスター管理サービスです。...

よく使われる3つのMySQLデータ型

MySQL のデータ フィールドのタイプを定義することは、データベースを最適化するために非常に重要で...

MySQL ストアド プロシージャで月ごとにテーブルを作成する方法

詳細には立ち入らずに、コードに直接進みましょう。一緒にコミュニケーションを取り、学びましょう。月ごと...