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

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

推薦する

バックエンドの権限に基づいてナビゲーション メニューを動的に生成する Vue-router のサンプル コード

目次js の1. グローバルガードを登録する2. Vuex 状態管理グローバルキャッシュルート3. ...

全画面ページのスクロール効果を実現するJavaScript

JavaScript DOM を読み終えた後、解釈型 JavaScript スクリプト言語に対する...

Baotaパネルを再起動すると、「-ModuleNotFoundError: No module named 'geventwebsocket'」というメッセージが表示されます。

背景:サーバーがFlaskプロジェクトをデプロイし、python3をインストールしたため、再起動時に...

単一のdivの正多角形変換を実現する純粋なCSS

前回の記事では、beforeとafterの擬似要素を使用してMaterial Designスタイルの...

Vue3.0はドロップダウンメニューのカプセル化を実装します

Vue3.0 がリリースされてからしばらく経ちましたが、勉強を始める必要があります。まず、達成したい...

Javascript における分割代入構文の詳細な説明

序文ES6 で初めて導入された「構造化代入構文」を使用すると、配列やオブジェクトの値を異なる変数に挿...

CSSは、他のレイヤーを変更せずに、多層ネスト構造の最外層を回転させる効果を実現します。

次のようなシナリオがあります。円形のコンテナで、最も外側のコンテナの背景が円弧になっています。内側の...

MySQLクエリ条件におけるonとwhereの配置の違いの分析

導入今日SQLを書いているときに、問題が発生しました。要件は、データを照会し、スコアと過去 1 週間...

Tomcat の設定と Eclipse での起動方法

目次Tomcat8のインストールと設定方法tomcat ダウンロードTomcat マネージャーを有効...

適応型ウェブページを設計および作成する方法

3G の普及により、携帯電話を使ってインターネットにアクセスする人が増えています。モバイル デバイス...

Chromeブラウザの自動パスワード保存プロンプト機能を無効にする方法

注: Web 開発では、フォームに autocomplete="off" を追加...

CSS を使用してテクスチャ付きグラデーション背景画像を記述するためのサンプル コード

プロジェクト内のページの長さはおよそ2000px以上あり、背景画像にはテクスチャやグラデーションがあ...

MySQLの高性能最適化スキルの概要

データベースコマンド仕様すべてのデータベース オブジェクト名には小文字を使用し、アンダースコアで区切...

シェルスクリプト nginx 自動化スクリプト

このスクリプトは、nginxの起動、停止、再起動の操作を満たすことができます。 #!/bin/bas...