MySQL 5.5 の導入に関する問題

MySQL 5.5 の導入に関する問題

MySQL の導入

現在、会社ではプラットフォーム運用を通じてMySQLを導入しています。金曜日、プラットフォームに一時的に問題が発生しました。緊急の必要性があったため、手動で導入しました。長い間環境を導入していなかったため、少し錆びついています。ここで導入手順と遭遇した問題を記録しておき、皆様のお役に立てれば幸いです。

1. 一般的に言えば、デプロイには 3 つの一般的な方法があります。1 つ目は yum 方式で、これは rpm パッケージです。2 つ目はソース コード方式で、これはソース コードです。3 つ目はバイナリ パッケージで、これは tar.gz 形式のパッケージです。これを解凍するだけです。私は 3 番目の方法を使用して、MySQL バージョン 5.5.19 をデプロイします。

2. まず、エラーを見てみましょう。

サービスを開始するためのステートメント:
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults=/data/mysql_4310/my.cnf &

 [注意] InnoDB: パージの開始を待機中
 [注記] InnoDB: Percona XtraDB (http://www.percona.com) 5.7.16-10 が起動しました。ログ シーケンス番号 0
 [注意] プラグイン「FEDERATED」は無効になっています。
20190621_11:25:41mysqld: テーブル 'mysql.plugin' が存在しません
 [エラー] mysql.plugin テーブルを開くことができません。mysql_upgrade を実行して作成してください。
 [エラー] 不明な変数 'thread_concurrency=8'
 [エラー] 中止しています

ご覧のとおり、2 つのエラーが報告されています。1 つ目は、mysql.plugin テーブルを開くことができないこと、2 つ目はパラメータ エラーです。パラメータ thread_concurrency を認識できません。

2 つ目の質問については、設定ファイル内のパラメータの問題であることが確認できます。通常の 5.7 設定ファイルを使用し、いくつかのパラメータを変更したため、このパラメータが見落とされ、変更できる可能性が非常に高くなります。主に最初の質問ですが、このとき、私は次のような試みをしました。

3. 解決策

試行1: 再起動してみる

service mysql start を使用する方法:

[root]# サービス mysql_4310 を開始
MySQLを起動しています.....サーバーはPIDを更新せずに終了しました(ファイル[FAILED]/mysql_4310/tmp/mysql.pid)。

サービスは依然として開始できず、エラー ログの出力は変更されていないことがわかります。

試行2: エラー後のプロンプトを確認し、mysql_upgradeメソッドを実行します。

[ルートbin]# ./mysql_upgrade --protocol=tcp -P4310 -p
パスワードを入力してください: 
'mysql' を次のように検索します: ./mysql
'mysqlcheck' を次のように検索します: ./mysqlcheck
接続引数 '--protocol=tcp' '--port=4310' で 'mysqlcheck' を実行しています 
./mysqlcheck: 接続しようとしたときにエラーが発生しました: 2003: 'localhost' (111) の MySQL サーバーに接続できません

まだ動作しないようです。現時点では、設定ファイルに問題があるのではないかと真剣に疑っています。

試行 3: オンライン環境から mysql5.5 構成ファイルを取得し、新しい構成ファイルを置き換えて再起動します。

[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults-file=/data/mysql_4310/my.cnf & 
[1] 63529
[root@mysql_4310]# 190621 11:51:37 mysqld_safe '/data/mysql_4310/log/hb30_web_wechat_answers-121_246.err' にログを記録しています。
190621 11:51:37 mysqld_safe /data/mysql_4310/data のデータベースを使用して mysqld デーモンを起動しています
190621 11:51:40 mysqld_safe mysqld (pid ファイル /data/mysql_4310/tmp/mysql.pid から終了)

エラー ログを表示します。

エラー ログを表示します。
[注意] プラグイン「FEDERATED」は無効になっています。
-5.5.19-linux2.6-x86_64/bin/mysqld: 不明なエラー 1146
[エラー] mysql.plugin テーブルを開くことができません。mysql_upgrade を実行して作成してください。
InnoDB: InnoDB メモリ ヒープが無効になっています
InnoDB: GCC アトミック組み込み関数を使用したミューテックスと rw_locks
InnoDB: 圧縮テーブルは zlib 1.2.3 を使用します
InnoDB: Linux ネイティブ AIO の使用
InnoDB: バッファプールを初期化しています。サイズ = 4.0G
InnoDB: バッファプールの初期化が完了しました
指定されたデータファイル /data/mysql_4310/ibdata1 は存在しませんでした:
作成されるタブー!
 InnoDB: ファイル /data/mysql_4310/ibdata1 のサイズを 1000 MB に設定
 物理的にファイル全体を書き込みます: お待ちください...
 MB: 100 200 300 400 500 600 700 800 900 1000
 InnoDB: データファイル /data/mysql_4310/ibdata2 が存在しませんでした: 新しく作成する必要があります
 InnoDB: ファイル /data/mysql_4310/ibdata2 のサイズを 100 MB に設定
 物理的にファイル全体を書き込みます: お待ちください...
 MB: 100
og ファイル /data/mysql_4310/innodblog/ib_logfile0 のサイズは 0 1073741824 バイトです
.cnf ファイル 0 134217728 バイトで暗号化されました。
[エラー] プラグイン 'InnoDB' 初期化関数がエラーを返しました。
[エラー] プラグイン「InnoDB」をストレージ エンジンとして登録できませんでした。
[エラー] 中止しています

最初に新しいエラーが発生し、Innodb 初期化関数がエラーを返し、innodb ストレージ エンジンが使用できないことが判明しました。この時点で、初期化中にエラーが発生してサービスが利用できなくなったのではないかと考え始め、データ ディクショナリを再初期化してサービスを再起動し、動作するかどうか確認することを考えました。

試行4: データ辞書を再初期化する

初期化非セキュアメソッドを使用して再初期化を試みましたが、失敗しました。

[ルート mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld
 --initialize-安全でない 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/data/mysql_4310/データ 
--basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 &
[1] 7045



[1]+ 終了 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld 
--initialize-安全でない 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/data/mysql_4310/データ 
--basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

エラー ログは以前と同じで、mysql.plugin テーブルが存在しないことを示しています。さらに、次の行がもう 1 行あります。

[エラー] /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld: 不明なオプション '--initialize-insecure'

そこで、--initialize-insecure パラメータの公式ドキュメントを確認したところ、このパラメータは MySQL バージョン 5.5 には存在しないことがわかりました。バージョン 5.5 には初期化パラメータがあるため、これを初期化パラメータに変更して再初期化したところ、次のエラーが報告されました。

[root@ ]/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize &

[1]+ 終了 2 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize

この時点で、公式ドキュメントを確認すると、MySQL 5.5 バージョンは、mysqld コマンドではなく、mysql_install_db コマンドを使用して初期化されていることがわかります。mysql_install_db ツールは、/usr/local/mysql-5.5.19-linux2.6-x86_64/bin ディレクトリではなく、/usr/local/mysql-5.5.19-linux2.6-x86_64/scripts ディレクトリにあります。したがって、次のように、cp コマンドを使用して、指定されたディレクトリにコピーしてから初期化します。

[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db 
--defaults-file=/data/mysql_4310/my.cnf 
[root@mysql_4310]# ll | grep インストール
[root@mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db 
--defaults-file=/data/mysql_4310/my.cnf 
--datadir=/data/mysql_4310/データ 
--basedir=/usr/local/mysql-5.5.19-linu
[1] 16365
[ルート@mysql_4310]# 
MySQL システム テーブルをインストールしています...
わかりました
ヘルプ テーブルに入力しています...
わかりました

起動時にmysqldを起動するには、
support-files/mysql.server をシステムに適した場所にコピーします

MySQL ルート ユーザーのパスワードを設定することを忘れないでください。
これを行うには、サーバーを起動し、次のコマンドを発行します。

/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root パスワード '新しいパスワード'
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root -h tk01-devt-mysql-7-200 パスワード '新しいパスワード'

あるいは、以下を実行することもできます:
/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_secure_installation

これにより、テストを削除するオプションも提供されます
デフォルトで作成されるデータベースと匿名ユーザー。これは
実稼働サーバーに強くお勧めします。

詳しい手順についてはマニュアルを参照してください。

MySQL デーモンは次のように起動できます。
cd /usr/local/mysql-5.5.19-linux2.6-x86_64 ; /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe &

mysql-test-run.plでMySQLデーモンをテストできます。
cd /usr/local/mysql-5.5.19-linux2.6-x86_64/mysql-test; perl mysql-test-run.pl

/usr/local/mysql-5.5.19-linux2.6-x86_64/scripts/mysqlbug スクリプトに関する問題があれば報告してください。


[1]+ 完了 /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64

結果は成功でした。

要約すると:

1. MySQL 5.5バージョンの初期化では、mysqldツールの代わりにmysql_install_dbツールが使用されます。

2. MySQL 5.5バージョンの初期化では--initializeパラメータを使用します

上記は、MySQL 5.5 のデプロイメントに関する問題の詳細です。MySQL のデプロイメントの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • CentOS8 で MySQL 8.0 をインストールしてデプロイする方法
  • Dockerを使用してMySQL 8.0をデプロイする方法の例
  • MySQLクラスタのDockerデプロイメントの実装
  • Centos サーバーに MySql をデプロイし、Navicat に接続するプロセスの詳細な説明
  • CentOS8 デプロイメント LNMP 環境で mysql8.0.29 をコンパイルしてインストールする方法の詳細なチュートリアル
  • Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル
  • Linux 上での MySQL データベースのリモート展開の詳細な手順
  • Django+Mysql+Redis+Gunicorn+NginxのDockerデプロイメントの実装
  • Docker を使用した MySQL のデプロイの詳細説明 (データ永続化)
  • Docker はリモート接続のサンプルコードを実現するために MySQL をデプロイします
  • mysql-8.0.17-winx64 のデプロイメント方法

<<:  Filebeat を使用して Nginx ログを収集する方法

>>:  要素テーブルの多層ネスト表示の実践

推薦する

Nginx レイヤー 4 負荷分散構成ガイド

1. レイヤー4負荷分散の概要レイヤー 4 ロード バランシングとは何ですか?いわゆる 4 層負荷分...

Linux で PyCurl のエラーを解決する方法

「curl-config を実行できませんでした」の解決策 pycurl のダウンロード/解凍 (p...

Ubuntu 18.04 のsources.listをAlibabaまたはTsinghuaミラーに変更する方法

1. バックアップソースリストUbuntu のデフォルトのソースは国内サーバーではないため、更新され...

a タグをクリックして入力ファイルのアップロードダイアログボックスを表示する方法

htmlコードをコピーコードは次のとおりです。 <SPAN class=tag><...

CSS スタイルの優先順位とカスケード順序に関する議論

一般的に: [重要なフラグ1つ] > [特別なフラグ4つ] > 宣言順!importan...

MySQL グラフィカル管理ツール Navicat のインストール手順

目次序文1. 全員にインストールパッケージを用意する2. Navicatをインストールし、Navic...

CentOS で yum を使用して rabbitmq-server をインストールする方法

RabbitMQをインストールする前にSocatをインストールする必要があります。そうしないと、Ra...

CSSアニメーションを使用して背景のシームレスな無限ループを実装する例

1. 需要絵が左から右へ無限ループで動く2. コードモバイルデバイスに適用されているため、rem 単...

JS の compose 関数と pipe 関数の使い方の詳細な説明

目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...

Vueでスケルトンスクリーンを実装する例

目次スケルトンスクリーンの使用Vueアーキテクチャスケルトンスクリーンアイデアの概要抽象コンポーネン...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...

標準SQL更新ステートメントの3つの用途についての簡単な理解

1. 環境: MySQL-5.0.41-win32 Windows XP プロフェッショナル2. テ...

MySQL 結合テーブルクエリの基本操作 左結合のよくある落とし穴

概要中小規模のプロジェクトでは、特にレポートを作成するときに、結合テーブル クエリが非常に一般的な操...

Alibaba Cloud CentOS7 サーバーの nginx 構成と FAQ の分析

序文:この記事は、jackyzm のブログ https://www.cnblogs.com/jack...