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 update文の実行プロセスの詳細な説明

以前、MySQL クエリ文の実行プロセスについての記事がありました。ここでは、更新文の実行プロセスを...

Vue-Routerのルート設定の詳しい説明

目次導入ルート内のオブジェクト属性パス: 文字列コンポーネント: コンポーネント | () =>...

ウェブページに埋め込まれた Flash と IE、FF、Maxthon の互換性の問題

いろいろ苦労した後、インターネットで検索したり、以前の会社のプロジェクトを探したり、他の人のプロジェ...

MySQLに絵文字表現を保存する詳細な手順

原因: java.sql.SQLException: 列の文字列値が正しくありません: '\...

Docker+gitlab+jenkins は、ゼロから自動デプロイメントを構築します

目次序文: 1. Dockerをインストールする2. DockerでJenkinsをインストールする...

HTML における DOM 要素のスクロールバースクロール制御の詳細な説明

dom要素に新しい子要素を追加し、新しく追加された新しい要素がコンテナーのスコープを超えた場合は、次...

Vue-cli4 ルーティング構成の詳細な理解

目次序文 - Vue ルーティング1. 最も基本的なルーティング構成1. router/index....

vue の webpack -v エラー解決の概要

XiaobaiはVueについて学び、次にwebpackについて学び、そしてさまざまなものをインストー...

Linuxはバイナリモードを使用してmysqlをインストールします

この記事では、LinuxにバイナリモードでMySQLをインストールする具体的な手順を参考までに紹介し...

MySQL で浮動小数点データを文字データに変換するときに起こりうる問題の詳細な説明

序文この記事は主に、MySQL で浮動小数点型を文字型に変換するときに発生する問題を紹介します。これ...

CentOS 6.5 インストール mysql5.7 チュートリアル

1. 新機能MySQL 5.7 はエキサイティングなマイルストーンです。デフォルトの InnoDB ...

JavaScriptの無限ループを検出して防止する方法の詳細な説明

目次序文for文の無限ループを修正while文の無限ループを修正要約する序文Js デッド ループはど...

MIME エンコーディングの概要 (オンライン情報と実際の経験から統合)

1. MIME: 多目的インターネットメール拡張インペリアル カレッジ オブ コンピュータ オンラ...

CUDA8.0とCUDA9.0はUbuntu16.04で共存します

序文Github にある以前のコードには、CUDA 8.0 環境が必要なものもあります。初心者の場合...