1. 古いMySQL5.7データをバックアップするアップグレードの失敗によるデータ損失を防ぐために、最初に古いデータをバックアップすることを忘れないでください。バックアップには2つの方法があります。1つはホストマシン上で直接エクスポートコマンドを実行する方法、もう1つは最初にDocker環境に入って操作を実行する方法です。主なエクスポート コマンドは次のとおりです。 #方法 1: ホスト マシンで直接データをバックアップする# 0df568 は docker id、-uroot -p123456 はユーザー名とパスワード、dbA dbB はバックアップするデータ、--databases の後には複数のデータベース名が続く可能性があり、エクスポートされた sql は /root/all-databases3306.sql になります。 docker exec -it 0df568 mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #======================================================================================================================================================== #方法 2: 最初に docker に入り、mysqldump を実行してから、エクスポートされた sql をホストにコピーします #最初に docker に入ります docker exec -it 0df568 /bin/bash #オプションのソース /etc/profile #エクスポートコマンドを実行します。mysqldump -uroot -p123456 --databases dbA dbB > /root/all-databases3306.sql #ホストマシンにコピー#Dockerを終了し、exitコマンドを実行しますexit #この時点で、すでにホスト環境になっています。コピーコマンドを実行して、docker red から sql ファイルをコピーします。docker cp 0df568:/root/all-databases3306.sql /root/all-databases3306.sql 2. MySQL8.0.13のイメージをプルしてインストールを完了します実際にMySQLを取得してインストールするには、公式Webサイトを参照してください。参考URL: https://hub.docker.com/r/mysql/mysql-server/。インストール手順の簡単な説明です。 2.1 イメージをローカルにプルする最新のMySQLイメージを取得するには、次のコマンドを実行します。 docker pull mysql/mysql-server:最新 指定されたMySQLイメージをプルする #tag は、必要なバージョン番号を入力します。たとえば、MySQL8.0.13 が必要な場合は、タグ docker イメージを使用して、プルダウンした進行状況を表示できます。 2.2 MySQL 8.0.13イメージを実行する指定された MySQL8.0.13 Docker イメージを実行します。指定されたイメージは手順 2.1 ですでにプルされています。次に、docker images を通じてローカル Docker イメージを表示し、イメージ ID と名前を取得できます。次に、次のコマンドを実行して、MySQL 8.0.13 の Docker イメージを実行します。 #--name は実行および起動後の名前を指定します -e は docker 内の環境変数を指定します -v パーティションまたはディレクトリ マッピング、docker プログラム データはホストの指定された場所にマップされます -p はホストから docker プログラムへのポート マッピングを指定します -d はイメージのバージョンを指定します。 docker run --name=mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -v /root/dockerdata/mysql8.0/data:/var/lib/mysql -p 3307:3306 -dit mysql/mysql-server:8.0.13 実行されているか確認する # 次のコマンドを実行します docker ps 3. MySQL 8.X にアップグレードした後の問題MySQL 8.x にアップグレードした後、リモート接続が接続できなくなり、非常に不便なので修正する必要があります。主に次の 2 つの構成の側面が含まれます。 3.1 リモートアクセスの提供ユーザーを @'%' に変更します。% はすべてのホストが接続できることを意味します。コマンドは次のとおりです。 #まずデータベースにrootとしてログインし、次のコマンドを実行します。#a. msyqlを使用します mysql を使用します。 #b. 次に、 GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456' という認証を実行します。 #c. 必ず権限を更新 (再ロード) してください。そうでない場合は、FLUSH PRIVILEGES を有効にするために MySQL を再起動する必要があります。 3.2 接続時のパスワード認証方法を変更するMySQL8.X の暗号化方式は caching_sha2_password です。caching_sha2_password 暗号化方式はリモート アクセス時にはサポートされないため、 # a. 指定されたユーザーを変更します ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; # b. 必ず権限を更新 (再ロード) してください。そうでない場合は、FLUSH PRIVILEGES を有効にするために MySQL を再起動する必要があります。 4. 新しいMySQLにデータをインポートするデータをインポートするには、まずデータベースのバックアップ ファイルを新しい Docker にコピーし、次にインポート コマンドを実行します。コマンドは次のとおりです。 #バックアップファイルをdockerにコピーします cp /root/all-databases3306.sql 3sfsdf:/root/all-databases3306.sql #まずdocker環境に入り、それをデータベースにインポートします。docker exec -it xxx /bin/bash mysql -u ルート -p < /root/all-databases3306.sql 5. 参考資料https://hub.docker.com/r/mysql/mysql-server/ 要約する 以上が、Docker バージョンの MySQL5.7 から MySQL8.0.13 へのアップグレードとデータ移行についての編集者による紹介です。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。 以下もご興味があるかもしれません:
|
<<: MySQL 5.7 および MySQL 8.0 でルートパスワードを変更する方法の概要
>>: Vue.js で AntV X6 を使用する手順の例
NULL 値によると、MySQL の NULL 値は単にデータがないことを意味します。NULL 値は...
序文この記事では、MySQL で特殊文字を使用してデータベース名を作成する方法について説明します。こ...
今夜、数日間悩まされていた問題を解決しました。本当に解決したかどうかはわかりませんが、解決されている...
新しいプロジェクトは基本的に終了しました。フロントエンドとバックエンドを分離して統合を完了したのは初...
多くの友人は、フロントエンドを学習するときに、ボックス モデルがデフォルトで正方形であることに気付き...
この記事では、シンプルなカレンダー効果を実現するためのjsの具体的なコードを参考までに共有します。具...
プロジェクトでは、SQL を使用してデータ分析を実行するために、大量のデータをデータベースにインポー...
<br />当サイトのオリジナルコンテンツですので、転載の際は出典を123WORDPRE...
1. HTMLページの文字セットを指定する2つの方法方法1: <メタ文字セット="u...
目次1. イベントとは何ですか? 2. 「イベント」機能を有効にする1. 機能が有効になっているかど...
必要:近い将来、大容量ファイルのアップロード機能を実装します。フロントエンドフレームワークのアップロ...
上部のメニュー バーに検索ボックスを配置するのは一般的なシナリオですが、検索機能がそれほど頻繁に使用...
ffmpeg は非常に強力なオーディオおよびビデオ処理ツールです。公式 Web サイトは http:...
1: 速度と読み込み方法の違いdivとtableの違いは速度ではなく、読み込み方法です。速度はネット...
目次1. ファイルをインポートする2. HTMLページ3. メインコード4. 画像をbase64に変...