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 の他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Filebeat を使用して Nginx ログを収集する方法
序文:インターネット技術の継続的な発展に伴い、MySQL 関連のエコシステムはますます充実し、ますま...
コンストラクタの借用この手法の基本的な考え方は単純です。サブタイプ コンストラクター内からスーパータ...
[mysqlカーソルの使い方と機能]例:現在、テーブル A、B、C の 3 つのテーブルがあります。...
目次序文1. 少ない2. コンポーネントをインポートする3. 設定ファイルを変更するステップ1: l...
1. 別名の使用alias コマンドは、コマンドのエイリアスを設定するために使用されます。このコマン...
目次問題の説明一般的な機能効果は次のとおりです。思考分析完全なコード要約する問題の説明Teambit...
最近、ブルートフォース攻撃によるサーバのクラッキングが頻発しています。侵入行為を大まかに分析し、よく...
この記事の例では、Vueスライダー検証の実装を共有しています。コードは次のとおりです。 <テン...
まず、provide/inject を使用する理由について説明しましょう。祖父コンポーネントと孫コン...
この記事では、ランダムロールコールを実装するためのjsの具体的なコードを参考までに共有します。具体的...
Web デザイナーの頭の中には、仕事に関連する多くの知識が詰まっている必要があります。 CSS は、...
1. Dockerの紹介Docker は Linux オペレーティングシステムの一部の機能をベースに...
面接の質問で、3 行 3 列のレイアウトが求められます。1 行目の 2 番目の列と 2 行目の 2 ...
1. Dockerネットワークカードを作成する [root@i ~]# brctl addbr d...
データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...