Linux MySQL 5.5 が MySQL 5.7 にアップグレードされました以下では、MySQL をアップグレードするための簡単な手順を紹介します。その後、123WORDPRESS.COM の編集者が、参考になる補足資料をいくつかまとめました。 1. mysql5.7.32をダウンロードする公式ダウンロードアドレス: https://dev.mysql.com/downloads/mysql/ 解凍
2. 古いmysql binディレクトリに入り、mysqlデータをエクスポートします。
3. 新しいmysqlルートディレクトリに入り、データを保存するデータディレクトリを作成します。
4. 新しく解凍したデータベースに対して、まず初期化コマンドを実行します。
PS: 上記のアップグレードは Cent OS 上で行われましたが、Kylin をアップグレードしたときに、上記のステートメントが認識されず、次の初期化ステートメントに置き換える必要があることがわかりました。 ./mysqld --defaults-file=../my.cnf --basedir=../ --datadir=../data --user=root --initialize 5. パスワードをスキップしてログインするmy.cnfの[mysqld]にskip-grant-tablesを追加する 6. サービスを開始する
7. パスワードを設定する新しいコマンドラインウィンドウでmysqlにログインする
8. サービスの停止設定ファイル内のskip-grant-tablesをコメントアウトする 9. サービスを開始する
10. 新しいコマンドラインログイン
現時点では、どのコマンドを実行しても、常に「このステートメントを実行する前に、ALTER USER ステートメントを使用してパスワードをリセットする必要があります。」というプロンプトが表示されます。 パスワードの設定 = PASSWORD('xxxx'); 11. MySQLに接続するための他のIPアドレスを設定する
12. 履歴データをインポートする
13. アップデートを実行する
14. アップグレード後、クエリステートメントでエラーが報告される場合があります。次のステートメントを実行できます。
以下は他のネットユーザーからのコメントです MySQL 5.5 から 5.7 へのアップグレード最近、MySQL をバージョン 5.5 から 5.7 にアップグレードするタスクがあります。これまでデータベースをアップグレードしたことがないので、試行錯誤しながら進めるしかありません。ネット上でたくさんの情報を見つけました。アップグレードする方法は2つだけです。 1. アップグレード方法1. 論理アップグレード: mysqldump を使用して SQL ファイルを直接エクスポートし、新しい MySQL5.7 データベースを作成し、エクスポートした SQL ファイルを新しいデータベースにインポートします。もちろん、この方法を使用する場合は、mysqldump ではなく mydumper を使用することをお勧めします。当社では大量のデータがあるため、この方法で処理しませんでした。 2. インプレース アップグレード: このアップグレード方法はシンプルで高速です。元の MySQL インストール ディレクトリと /etc/my.cnf 構成ファイルを直接置き換え、mysql_upgrade スクリプトを使用してシステム テーブルのアップグレードを完了します。 2. 環境の紹介当社の MySQL クラスターは Atlas の読み取り/書き込み分離を使用しており、MySQL プロキシの下に 4 つのデータベース サーバーがあります。 マスター: 172.16.100.1 スレーブ1:172.16.100.2 スレーブ2:172.16.100.3 奴隷3:172.16.100.4 現在のデータベースバージョン: "5.5.21 設定ファイル: /etc/my.cnf データディレクトリ: /data/mysql オペレーティングシステムのバージョン: CentOS6.9 3. アップグレードのアイデアオンライン業務を中断することはできないため、まずスレーブの 1 つをクラスターから追い出し、MySQL 5.7 にアップグレードすることにしました。次に、MySQL 5.7 デバイスをクラスターに追加しました。データが同期された後、マスター ノードとスレーブ ノードを切り替え、他のスレーブ ノードをアップグレードしました。 4. 練習4.1. mysql-proxyにログインし、スレーブの1つをクラスタから追い出す
バックエンドプロキシライブラリを表示する
+-------------+-------------------+--------+------+ | backend_ndx | アドレス | 状態 | タイプ | +-------------+-------------------+--------+------+ | 1 | 172.16.100.1:3306 | アップ | rw | | 2 | 172.16.100.2:3306 | アップ | ro | | 3 | 172.16.100.3:3306 | アップ | ro | | 4 | 172.16.100.4:3306 | アップ | ro | +-------------+-------------------+--------+------+ セット内の行数は 5 です (0.00 秒) 4.2. MySQLのインストールディレクトリを置き換えるmysqlの公式ウェブサイトにアクセスし、mysql5.7バージョンmysql-5.7.23-linux-glibc2.12-x86_64.tar.gzをダウンロードします。 mysql5.7を解凍する
以前の mysql ディレクトリがリンクとして作成された場合は、リンクをキャンセルして再度リンクするだけです。
以前の mysql ディレクトリがリンクされていない場合は、名前を変更して別の mysql ディレクトリをリンクします。
4.3. MySQLサービスを開始するMySQL 5.7 以降では、データベースを初期化する必要はありません。つまり、mysql_install_db コマンドを実行する必要はありません。
エラーがある場合はログ情報を確認してください 4.4. システム テーブルのデータ ディクショナリ情報を更新します。コマンドは次のとおりです。
出力は次のようになります。 「ALTER TABLE ** FROCE」というエラー プロンプトが表示される場合がありますが、これらのエラーについては心配しないでください。MySQL は後で自動的に修復します。データベースの状況によっては、修復時間が少し長くなる場合があります。今回はアップグレードに 2 時間以上かかりました。 最後に、出力が「アップグレード プロセスが正常に完了しました」であれば、アップグレードが成功したことを意味します。 4.5. アップグレード後にMySQLを再起動する/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --basedir=/usr/local/mysql --user=mysql & アップグレードが完了したかどうかを確認します。アップグレードが成功した場合、出力は次のようになります。 このMySQLのインストールはすでに5.7.23にアップグレードされています。mysql_upgradeを実行する必要がある場合は、--forceを使用してください。 4.6.マスタースレーブ構成を再構成するマスタースレーブ構成をやり直す
「はい」が 2 つある場合は正常であることを意味します。 4.7 読み取り書き込み分割クラスタへの参加mysql-proxyデバイスに移動する
状態が up の場合、クラスターが正常に参加したことを意味します。 追記: データベースのアップグレードは初めてで、全体的なアイデアが正しいかどうかわからなかったので、最初にテスト環境でテストし、数日間テストして問題がないことを確認した後、オンラインでアップグレードを実行しました。参考用です。 MySQL 5.5 から 5.7 へのアップグレード中に遭遇した落とし穴経緯はこうです。当社には、5.5 の古い MySQL バージョンがいくつかあります。最近、プロジェクトがアップグレードされ、いくつかのフィールドが追加されました。spring-data-jpa を使用してテーブル構造を自動的に更新すると、MySQL バージョン 5.5 ではテーブルのデフォルト値として 2 つ以上の current_timestamps をサポートしていないため、エラーが報告されました。したがって、データベースのアップグレードを検討する必要があります まずサーバーのバージョンを確認してください もう一度ソースを見てください ちなみに、弊社はAWSのEC2を利用しているので、ソースはすべてamzから取得しています。 yum update mysql-server を試しましたが、効果がなかったので、続行しました。 オンラインでいろいろと読みましたが、まず古いバージョンのデータベースをアンインストールしてから、新しいバージョンのデータベースをインストールするようにと書いてありました。では、データはどうしたらいいのでしょうか? 安全のため、まずデータベースを 1 つずつバックアップしました。MySQL データベースにも多数のユーザーと権限があることがわかったので、MySQL もバックアップしてから作業を開始しました。 1. データベースをアンインストールする
しかし、ここでのインストールは異なるようなので、今 yum が見つけたものをすべてアンインストールしました。 アンインストールする前に MySQL サービスをオフにすることを忘れないでください。そうしないと、新しいバージョンをインストールした後、mysql --version を使用して MySQL ログインが 5.7 か 5.5 かを確認し、サービスを再起動すると、さまざまな問題が発生します。一部のファイルが削除されなかったため、新しくインストールされたデータベースは非常に奇妙に見えました。 。 。 2. 新しいデータベースをインストールする
まず、利用可能なバージョンを確認してください。これについては何も言うことはありません。
インストールしても大丈夫です。何がインストールされているか見てみましょう 奇妙なことに、mysql-config はまだ 5.5 に依存していますが、使用時に問題は見つかりませんでした。 3. 構成インストール後、次のmy.cnfを変更します。 私のサーバーは /etc/my.cnf にあります。他のイメージが変更されたかどうかはわかりません。 設定時に、データ保存スペースがまだあることをふと思い出し、使えるか確認するために設定してみました。 そこで、my.cnf に次の行を追加しました (5.5 の多くの設定は非推奨になっており、以前の my.cnf は削除する必要があります。そうしないと、起動時にエラーが報告されます) 設定後、サービスを決定的に開始します
案の定、私はエラーを報告しました 起動ログを確認しました
しまった、どうすればいいんだ?Google で検索したら、次の記事を見つけました: https://support.plesk.com/hc/en-us/articles/115001659169-MySQL-fails-to-start-mysql-user-table-is-damaged 具体的な解決策は以下のとおりです a. サーバーホストにログインする b. c. サービスmysqldの開始 d.mysql_アップグレード e. サービスmysqldを再起動する mysql_upgradeを実行しました 公式ドキュメントを確認したところ、アップグレード後に互換性がないものが多数あるという一般的な意味です。公式では、以前のワークスペースを修復するためのこのスクリプトを提供しています アップグレードはシームレスでした。MySQL データベース内のすべてのユーザーは以前のデータベースに残っていたため、影響を受けませんでした。 アップグレードが完了しました Linux MySQL 5.5 を MySQL 5.7 にアップグレードする詳細な手順に関するこの記事はこれで終わりです。MySQL 5.5 から 5.7 へのアップグレードに関する関連コンテンツの詳細については、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
目次序文記述子getとsetの詳細な説明オブジェクトの属性の乗っ取りオブジェクトのすべてのプロパティ...
目次序文1. イントラネットDNS AレコードとMXレコードを構成する2. メールサーバの初期化設定...
一般的に言えば、より完全な結果を得るためには、2 つ以上のテーブルから結果を取得する必要があります。...
データ管理の大部分は検索であり、SELECT はその大部分を占めています。 SELECT selec...
Alibaba Cloud ServerはTomcatをインストールして構成し、外部ネットワークアク...
Raspberry Pi 3B に 64 ビット アプリケーション (64 ビット JDK など) ...
1. MySQLをダウンロードする1.1 ダウンロードアドレスhttps://downloads.m...
目次背景MySQLが完全に起動したかどうかを確認する方法事故最初の変更2回目の改訂要約するMySQL...
ここでは主に、WeChat アプレットでラッキーホイール ゲームを開発する方法を紹介します。主に J...
HTML のフォームを使用して、ユーザーからさまざまな種類の入力情報を収集できます。フォームは、実際...
JavaScript に依存せず、純粋な CSS を使用してsvgストローク描画アニメーション効果と...
証明書チェーンを生成するスクリプトを使用して、ルート証明書、中間証明書、および 3 つのクライアント...
序文:基本的に、自社で使用する場合でも、顧客向けにサーバーを展開する場合でも、MySQL のバックア...
Docker コンテナが終了しても、デバッグを容易にし、ユーザー データを保持するために、デフォルト...