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 ログを収集する方法

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

推薦する

MySQL関連のツールをいくつかお勧めします

序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...

js で継承を実装する 5 つの方法

コンストラクタの借用この手法の基本的な考え方は単純です。サブタイプ コンストラクター内からスーパータ...

MySQLカーソルの使い方と機能の詳細な説明

[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...

Vue cli開発に基づく外部コンポーネントVantのデフォルトスタイルの変更の詳細な説明

目次序文1. 少ない2. コンポーネントをインポートする3. 設定ファイルを変更するステップ1: l...

Linuxでのaliasコマンドの使い方の詳細な説明

1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...

vueはEle.me UIを使用してteambitionのフィルタリング機能を模倣します

目次問題の説明一般的な機能効果は次のとおりです。思考分析完全なコード要約する問題の説明Teambit...

CentOS サーバーのセキュリティ構成戦略

最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...

Vueはシンプルなスライダー検証を実装する

この記事の例では、Vueスライダー検証の実装を共有しています。コードは次のとおりです。 <テン...

Vueのprovideとinjectの使い方と原則を分析する

まず、provide/inject を使用する理由について説明しましょう。祖父コンポーネントと孫コン...

js はランダムロールコールを実装します

この記事では、ランダムロールコールを実装するためのjsの具体的なコードを参考までに共有します。具体的...

デザイナーと開発者に役立つ 9 つの超実用的な CSS のヒント

Web デザイナーの頭の中には、仕事に関連する多くの知識が詰まっている必要があります。 CSS は、...

.NETCore Dockerはコンテナ化とプライベートイメージリポジトリ管理を実装します

1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...

面接の質問: 3 行 3 列のレイアウト、表は結合され、ネストされた表は許可されません

面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...

Dockerデータのバックアップとリカバリプロセスの詳細な説明

データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...