MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)

MySQLデータベースの名前を高速かつ安全に変更する方法(3種類)

MySQLデータベースの名前を変更する方法

Innodb エンジン テーブルのデータベース名を変更する方法と、MyISAM エンジンを操作する方法。

テーブルが MyISAM エンジンの場合は、データベース ディレクトリに直接移動し、mv を使用してフォルダーの名前を変更できます。 Innodb はまったく受け入れられず、関連するテーブルが存在しないというメッセージが表示されます。

最初の方法: データベースの名前を変更することは非推奨です

データベース名を old_db_name から new_db_name に変更します

これはバージョン 5.1.7 から 5.1.23 で利用可能ですが、公式には推奨されておらず、データが失われるリスクがあります。

2番目の方法: mysqldumpバックアップ

1. 名前を変更する必要があるデータベースを作成します。
2.mysqldumは名前を変更するデータベースをエクスポートします
3. 元の古いライブラリを削除する(本当に必要かどうかを判断する)
もちろん、この方法は安全ですが、データ量が多い場合は時間がかかります。

mysqldump -uxxxx -pxxxx -h xxxx db_name > db_name_dump.SQL #Backupmysqldump -uroot -p123456 -h127.0.0.1 test > test.sql #Backupmysql -uxxxx -pxxxx -h xxxx -e “CREATE DATABASE new_db_name”
mysql -uxxxx -pxxxx -h xxxx new_db_name < db_name_dump.SQL #復元 mysql -uxxxx -pxxxx -h xxxx -e “DROP DATABASE db_name”

3番目の方法: 名前変更テーブルを高速かつ安全に走査する

ここではスクリプトを使います。とても簡単なので、誰でも理解できると思います。

#!/bin/bash
# db_nameデータベース名がnew_db_nameに変更されたと仮定します
# MyISAM はデータベースディレクトリ内のファイルを直接変更できます。mysql_login=mysql -uroot -p123456
olddb="db_name"
newdb="新しいデータベース名"

#$mysql_login -e “データベース$newdbを作成
$mysql_login -e 'データベースが存在しない場合は作成する $newdb'
list_table=$($mysql_login -Nse "information_schema.TABLESからtable_nameを選択
    ここで、TABLE_SCHEMA='$olddb'")
$list_table 内のテーブルの場合;
する
$mysql_login -e "テーブル名を $olddb.$table から $newdb.$table に変更します"
終わり;
#$mysqlconn -e “データベース$olddbを削除”

ここでは、テーブル名を変更するために rename table コマンドを使用しています。ただし、新しいテーブル名の後にデータベース名を追加すると、古いデータベースのテーブルが新しいデータベースに移動されます。したがって、この方法は安全かつ高速です。

最後に、名前の変更の使用方法を添付します

コマンド: テーブルの元のテーブル名を新しいテーブル名に変更します。

例: テーブル名をMyClassからYouClassに変更します
mysql> テーブルの名前を MyClass から YouClass に変更します。

RENAME を実行するときは、ロックされたテーブルやアクティブなトランザクションが存在することはできません。また、元のテーブルに対する ALTER および DROP 権限、および新しいテーブルに対する CREATE および INSERT 権限も必要です。

MySQL は、複数テーブルの名前変更中にエラーが発生した場合、名前が変更されたすべてのテーブルのロールバック名前変更を実行し、すべてを元の状態に戻します。

Mysql: Navicat を使用してスケジュールされたバックアップを実装する

1. 機能説明

データベース内のデータは毎日バックアップする必要があり、問題が発生した場合にはバックアップを適時に復元できます。

2. 実装手順

Navicatを開いてプランをクリックし、新しいバッチジョブをクリックします。

C:\Users\ADMINI~1\AppData\Local\Temp\1581090423440.png

バックアップするデータベースを選択

1581090544692.png

選択して保存をクリック

1581091294049.png

上部のツールバーをクリックしてスケジュールされたタスクを設定します

1581091153168.png

「計画」をクリックし、「作成」をクリックして、実行時間を設定します。

1581091115424.png

1581091396707.png

設定は成功し、データはデフォルトで C:\Users\Administrator\Documents\Navicat\MySQL\servers にバックアップされます。

Navicat でバックアップをクリックしても表示できます。バックアップを復元するには、バックアップ ファイルをクリックして選択します。

バックアップが C:\Users\Administrator\Documents\Navicat\MySQL\servers にあることを確認します。

Navicat でバックアップをクリックしても表示できます。バックアップを復元するには、バックアップ ファイルをクリックして選択します。

1581091790901.png

これで、MySQL データベースの名前を変更する 3 つの迅速で安全な方法についての記事は終了です。MySQL データベースの名前変更の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • 年末ですが、MySQL パスワードは安全ですか?
  • MySQLを安全にシャットダウンする方法
  • MySQLプロセスを安全かつ適切にシャットダウンする方法
  • MySQLデータのセキュリティを確保するための提案
  • MySQLインスタンスを安全にシャットダウンする方法
  • MySQL セキュリティ管理の詳細

<<:  Docker を使用した nGrinder パフォーマンス テスト プラットフォームの導入プロセスの分析

>>:  クリーンなXHTML構文

推薦する

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...

vue + Electron でデスクトップ アプリケーションを作成するためのサンプル コード

1.vueパッケージングここでは、vueネイティブパッケージングコマンドを使用してvueプロジェクト...

FastApi+Vue+LayUIを使用してフロントエンドとバックエンドを分離するサンプルコード

目次序文プロジェクト設計後部フロントエンドプロジェクトを実行する質疑応答序文これまでの API 開発...

フロントエンドブラウザのフォントサイズが12px未満のソリューション

序文最近プロジェクトに取り組んでいたとき、UI デザインのフォント サイズは 10 ピクセルでした。...

crontab の実行結果を電子メールでユーザーに通知する方法

症状Centos7 ホストに crontab タスクを設定しましたが、時間が来るとメールを実行して「...

Apple M1チップにnginxをインストールし、vueプロジェクトをデプロイする詳細な手順

nginx をインストールApple Mac ではインストールに brew を使用します。brew ...

JavaScript のマイクロタスクとマクロタスクの説明

序文: js はシングルスレッド言語なので、非同期にすることは不可能です。しかし、js のホスト環境...

mysqld_multi を使用して単一のマシンに複数のインスタンスをデプロイする方法に関する MySQL チュートリアル

目次1. MySQLのコンパイルとインストール: 2. 最初のマルチインスタンス3307を準備する3...

HTML コマンドラインインターフェースの実装

HTML部分コードをコピーコードは次のとおりです。 <!DOCTYPE html> &l...

VMware ESXi CLI の一般的なコマンドを調べる

目次【共通コマンド】 [一般的な esxi コマンドの概要] [esxcli コマンドの調査] ES...

マインドマップを使って4つの側面からWeb標準の価値を議論する

このアイデアを改善し、より良い意見を得られることを期待して、議論を刺激するためにいくつかの値を大まか...

CSSを使用してすべての子要素を選択する方法の詳細な説明

CSS を使用してすべての子要素を再帰的に選択するにはどうすればよいですか?以下の記事では、CSS ...

MySQL DDLステートメントの使用

序文SQL の言語分類には主に以下の種類があります。 DDLデータ定義言語作成、削除、変更データ定義...

HTMLデザインパターンの日々の勉強ノート

HTML デザインパターン学習ノート今週は主にHTMLデザインパターンを学びました。学習内容をまとめ...