MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

MySQL 5.7.30 のインストールとアップグレードの問題に関する詳細なチュートリアル

くさび

コンピュータにインストールされている MySQL のバージョンが比較的古く、おそらくバージョン 5.1 であったため、JSON フィールド機能がサポートされていませんでした。開発部門が開発した最新のエディター製品は、JSON フィールドの機能を使用します。 そのため、MySQL のバージョンをアップグレードする必要があります。アップグレードの対象バージョンは MySQL 5.7.30 です (最新バージョンは 8.x ですが、基本的には 5.7 で十分です)。 アップグレードとインストールのプロセス中にいくつかの落とし穴が見つかったので、この記事を使用してそれらを記録しました。

古いバージョンをアンインストールする

まず、古いバージョンをアンインストールする必要があります。アンインストールは実際には非常に簡単です。MySQL サービスを削除するだけです。まず、CMD を開き、MySQL bin ディレクトリに cd して、次のコマンドを入力して MySQL サービスを削除します。

mysqld --mysql を削除
//注: 「msyql」はサービス名です。インストール時にサービス名を指定しない場合は、
// デフォルト名は MySQL です (Windows では大文字と小文字は区別されません)。
// インストール時に名前が指定されている場合は、上記の名前を指定された名前に変更する必要があります。

msyql を削除

注意すべき点は、MySQL サービスを削除した後でも、Windows サービス リストに残っている可能性があることです。どこに保存しても問題ありませんが、潔癖症で削除する必要がある場合は、レジストリ内の対応するキーを削除する必要があります。下の図を参照してください。もちろん、アップグレードでは、後で直接上書きできる Windows サービスをインストールする必要があります。

レジストリ図

次に、古い MySQL 関連のフォルダと関連する環境変数の設定を削除します。

データ ファイルと MySQL プログラムが同じフォルダーにある場合は、データを保持する必要があることに注意してください。

バージョン5.7.30をインストール

次のステップはバージョン 5.7.30 をインストールすることです。最初のステップはそれをダウンロードすることです。

MySQLをダウンロード

ダウンロードアドレスは https://dev.mysql.com/downloads/mysql/ です。
上記のリンクをクリックするとダウンロードページに移動します。最新バージョンは 8.x なので、デフォルトのバージョンは 8.x です。 「最新のGAを探す」をクリックすれば
バージョン「バージョンを選択し、無料インストールバージョンをダウンロードしてください:

ダウンロード

MySQLを解凍する

ダウンロード後、インストールしたいディレクトリに解凍します。たとえば、私のディレクトリは次のとおりです。
D:\Program Files (x86)\mysql-5.7.30-winx64

目次

環境変数の設定

図に示すように、システム変数パスの後に D:\Program Files (x86)\mysql-5.7.30-winx64\bin を追加します。

環境変数

設定ファイルmy.iniを作成する

バージョン 5.7.30 のインストール パッケージには、デフォルトでは構成ファイル my.ini が付属していません。したがって、my.ini ファイルを自分で作成する必要があります。 my.ini ファイルを手動で作成し、次の内容を入力します。

[mysql]
# mysqlクライアントのデフォルトの文字セットをdefault-character-set=utf8に設定します

[mysqld]
# ポート 3306 を設定 port = 3306
# mysql インストールディレクトリを設定します basedir=D:\Program Files (x86)\mysql-5.7.30-winx64
# mysqlデータベースのデータ保存ディレクトリを設定します。datadir=D:\Program Files (x86)\mysql-5.7.30-winx64\data
# 最大接続数を実行する max_connections=200
# サーバーが使用するデフォルトの文字セットは、8 ビットの latin1 文字セットです。character-set-server=utf8
# 新しいテーブルを追加するときに使用されるデフォルトのストレージエンジン default-storage-engine=INNODB

ここでは回避する必要がある落とし穴がいくつかあります。

my.ini 注 1

my.ini は ANSI 形式で保存する必要があります (構成ファイルはデフォルトで ANSI 形式でエンコードされ、誤って UTF-8 などの他の形式で保存される可能性があります)。そうしないと、後続のサービスが起動できなくなる可能性があります。 my.ini の形式がわからない場合は、次のように保存できます。

フォーマット ANSI

my.ini 注 2

以前のバージョンからバージョン 5.7 にアップグレードする場合は、以前の構成ファイルをコピーするだけで、以前の構成を保持できます。以前の低バージョンで使用されていた多くのパラメータは高バージョンには適さなくなっているため、この時点では注意が必要です。変更しないと、その後のサービスの起動は失敗します。

たとえば、私が遭遇したエラーの原因となったパラメータの 1 つは次のとおりです。

#table_cache=256 // 低バージョン table_open_cache=256 // 高バージョン

旧バージョンの設定を維持する必要があり、新バージョンのパラメータ変更に精通していない場合は、設定ファイルにログ機能を追加することができます。これにより、エラーが発生したときに、詳細をログで確認できます。 ログ パスを次のように構成します。

log_error=D:/mysql-5.7/error.log

起動に失敗した後、次のようなログでエラーを確認できます。

エラーログ

その他の可能性のあるエラー パラメータ:

不明な変数 'key-buffer=256M' //変更を削除するだけです。

不明な変数 'table-cache=512' //これをtable_open_cacheに変更します。

不明な変数 'thread-concurrency=8' // 変更を削除します。5.7 は廃止されました。

Windows サービスが起動に失敗した場合、エラーの詳細はマークされず、単にサービスが起動に失敗したことが示されます。 構成ログ ファイルを通じてのみ表示できます。

サービスを開始できません

MySQLサービスをインストールする

最も重要なステップは、MySQL サービスをインストールすることです。 まず、cmd インターフェイスに入り、MySQL の bin ディレクトリに CD し (ここでは bin ディレクトリで実行する必要があることに注意してください)、次のコマンドを実行します。

mysqld --install [サービス名、デフォルトはMySQL]

スクリーンショットは次のとおりです。

設置サービス

コマンドを実行すると、サービスが正常にインストールされたことを示すメッセージが表示されます。

注1

「サービスのインストール/削除が拒否されました」というエラー メッセージが表示される場合があることに注意してください。
理由: 通常のユーザー モード権限で cmd を使用して MySQL をインストールすると、このようなエラー メッセージが表示されます。管理者モードでcmdを実行します:

管理者としてcmdを実行する

その他の手順に実行権限がない場合は、管理者として実行してください。

注2

一部のコンピュータでは、MSVCP120.dll が見つからないというエラーが発生します。

間違い

このエラーは、vcredist がインストールされていないために発生します。vcredist のダウンロード アドレス: https://www.microsoft.com/zh-CN/download/details.aspx?id=40784
インストール、場所はデフォルトです。インストールが成功したら、サービスを再インストールします。

MySQLを初期化する

MySQL 5.7 にはデータ ディレクトリがないため、MySQL を初期化してデータ ディレクトリを作成する必要があります。これも比較的簡単です。次のコマンドを実行するだけです。

mysqld --initialize-insecure --user=mysql

ここで「mysqld --initialize」の使用を紹介している記事がいくつかあることに注意してください。「mysqld --initialize-insecure」と「mysqld --initialize」の違いは、前者は空のパスワードを作成し、後者はランダムなパスワードを作成することです。 したがって、ランダムなパスワードを出力するには、「mysqld --initialize」を使用し、できれば「--console」も使用してください(「--console」は Windows に限定されていることに注意してください)。

コンソール

コンソール

–user=msyql は主に、Linux または Unix システムで MySQL アカウントにデータ ディレクトリを承認するために使用されます。Windows で使用する必要はありません。

データ初期化の参照リンク: https://dev.mysql.com/doc/mysql-installation-excerpt/5.7/en/data-directory-initialization.html

初期化が完了すると、データ ディレクトリが生成されます。

注1

初期化中にエラーが発生した場合: 「–initialize が指定されましたが、データ ディレクトリにファイルがあります。中止します。」 これは、データ ディレクトリを手動で作成し、そこにファイルが含まれている可能性があるためです (たとえば、アップグレード中にこれを行った可能性があります)。 この場合、データ ディレクトリを削除するだけで済みます。 後でアップグレードを検討できます。

ここで言及されているデータ ディレクトリは、my.ini ファイルで指定されたディレクトリを指し、必ずしも MySQL インストール ファイルの下にあるディレクトリを指すわけではありません。
データディレクトリ=D:\Develop\MySQL\mysql-8.0.12-winx64\data

MySQLサービスを開始する

Windows で MySQL サービスを開始するには、次のコマンドを使用できます。

ネットスタートMySQL

画像.png

MySQLサービスのパスワードを設定する

パスワードを設定するには、mysqladmin を使用します。 MySQL サービスを開始した後、次のコマンドを入力します。

パスワード

古いパスワードを入力し(前の操作では、古いパスワードは空白です)、次に新しいパスワードを入力し、新しいパスワードを確認すると、設定が成功します。

注1

前回の初期化時にパスワードの初期化を行わず、誤って初期化パスワードを忘れてしまった場合、以下の問題が発生し、ログインやパスワードの変更ができなくなります。
「ユーザー 'root'@'localhost' のアクセスが拒否されました」

次の手順に従って解決してください。

スキップ許可テーブルを追加

設定ファイル my.ini に skip-grant-tables を追加します。

画像.png

MySQLサービスを再起動する

まず MySQL サービスを停止し、次に MySQL サービスを開始します。

画像.png

パスワードを変更する

まず、次のようにして、mysql にログインします。この時点ではパスワードは必要ありません。

ログイン

SQL ステートメントを使用してパスワードを変更するには、まず mysql を使用し、次にパスワードを更新します。

パスワードを変更する

次に、mysql を終了します。

skip-grant-tablesを削除し、MySQLサービスを再起動します。

まず、my.ini から skip-grant-tables を削除し、net stop mysql と net start mysql を使用してサービスを再起動します。

古いMySQLデータを5.7にアップグレードする

古いデータをアップグレードするには、バージョン 5.x からアップグレードする場合は、基本的に、関連するデータ ファイルをデータ フォルダーにコピーするだけです。 innodb を使用する場合は、「ibdata」などのファイルをコピーする必要があることに注意してください。 それ以外の場合、レポートは存在しません。

エラー: 1146: テーブル 'a_content' が存在しません

Innodb は、トランザクション (行レベル) をサポートする MYSQL データベース用の一般的なデータベース エンジンです。ibdata はファイル データの保存に使用され、ライブラリ名を持つフォルダー内のテーブル ファイルは単なる構造です。MySQL の新しいバージョンではデフォルトで innodb が使用されるため、ibdata1 ファイルがデフォルトで存在します。このファイルが欠落していると、一部のデータ テーブルが失敗します。

アップグレード プロセス中にデータが破損した場合は、修復コマンドを使用して修復できます。

テーブルを修復する テーブル名

上記の操作が正常に完了したら、問題ありません。それでも問題が解決しない場合は、アップグレードコマンドmysql_upgradeを使用してデータをアップグレードしてみてください(このコマンドを使用してアップグレードすることもお勧めします。そうしないと、その後の問題の特定が困難になる可能性があります)。
アップグレード

//mysql をアップグレードします。mysql_upgrade は互換性のないテーブルをチェックし、許可テーブルを更新します。
mysql_upgrade -uroot -p

アップグレードの速度はデータ ディレクトリのサイズによって異なります。

要約する

MySQL 5.7.30 の詳細なインストールとアップグレードのチュートリアルに関するこの記事はこれで終わりです。MySQL 5.7.30 のインストールとアップグレードに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • CentOS7 に YUM 経由で MySQL 5.7 をインストールする詳細な手順
  • Windows での mysql-5.7.28 のダウンロード、インストール、および構成に関する詳細なグラフィックとテキストのチュートリアル
  • CentOS 6.2 に MySQL 5.7.28 をインストールするチュートリアル (mysql ノート)
  • MySQL 5.7.27 のインストールと設定方法のグラフィックチュートリアル
  • MySQL5.7.27-winx64 バージョン win10 のダウンロードとインストールのチュートリアル図
  • CentOS7 64 ビットでの MySQL 5.7 のインストールと設定のチュートリアル
  • MySQL 5.7.33 インストール プロセスの詳細な図解

<<:  ES6拡張演算子の理解と使用シナリオ

>>:  nginx がドメイン名アクセス用に設定されている場合にドメイン名の後に 2 つのスラッシュ // が表示される問題の解決方法

推薦する

CSS3アニメーションジャミングソリューションについての簡単な説明

なぜ詰まっているのでしょうか?言及しなければならない前提があります。フロントエンド開発者は皆、ブラウ...

MySQL Binlog ログ処理ツールの比較分析

目次運河マクスウェルデータバスAlibaba Cloud のデータ転送サービス (DTS)運河ポジシ...

MySQL はどのようにしてデータベースの削除と暴走を効果的に防ぐことができますか?

目次セーフモード設定テスト1. where句なしで更新および削除する2. 非インデックスキーの削除3...

JavaScript のディープコピーの落とし穴

序文以前、ある会社の面接に行ったとき、面接官から「オブジェクトを深くコピーするにはどうすればよいです...

MySQL Group by最適化の詳細な説明

目次標準的な実行プロセス最適化並べ替えを削除並べ替え成し遂げる要約する標準の Group by ステ...

Windows サーバー ファイルをローカルにバックアップする方法、Windows サーバー データ バックアップ ソリューション

重要なデータはバックアップする必要があり、リアルタイムでバックアップする必要があります。そうしないと...

Vue はブラウザのパスワード記憶機能を無効にするサンプル コードを実装します

情報を探すインターネットで見つかったいくつかの方法: autocomplete="off&...

Dockerコンテナのエクスポートとインポートの例

目次DockerコンテナのエクスポートDockerコンテナのインポ​​ートこの記事では主に、コンテナ...

uniappのグローバル変数実装の詳細な説明

序文この記事では、uniapp グローバル変数の実装方法をいくつかまとめています。詳細な知識は、uV...

HTML チュートリアル、optgroup 要素の理解

カテゴリ選択を選択します。テストの結果、IE と FF はこの要素を適切にサポートできることがわかり...

CentOS 7.4 で MySQL 5.7.28 バイナリモードをインストールする方法

Linuxシステムバージョン: CentOS7.4 MySQL バージョン: 5.7.28 Linu...

デザイン理論:人間中心のデザインコンセプト

<br />思想が東西に分かれていた時代、東洋の叡智を代表するものの一つとして「禅」は多...

Windows 10 + mysql 8.0.11 zipインストールチュートリアルの詳細

準備する: MySQL 8.0 Windows zip パッケージのダウンロード アドレス: htt...

Vue ミックスインの詳しい説明

目次ローカルミックスイングローバル ミックスイン要約するローカルミックスイン <テンプレート&...

ChromeとIEに対応したWMPに埋め込まれたHTMLの詳細な紹介

実際には、対応する記述方法は多数ありますが、最も一般的なのは object + embedded で...