使っていますMySQL存在するUbuntuマシン。
以下のデータベースファイルを物理的に移動する必要があります/var/lib/mysql/
(すべてのデータベースディレクトリがここにあります)。
2つのデータベースがあるとしましょう。db_1そしてdb_2だから、パスの下に両方のディレクトリ(と)が表示されますdb_1/
。これら2つのデータベースディレクトリには、データベース内のすべてのテーブル情報を格納するファイルがたくさんあります。db_2/
/var/lib/mysql/
.frm
.MYD
.MYI
たとえば、db_1/
ディレクトリには次のファイルが含まれています。
/var/lib/mysql/db_1# ls
cars.frm
cars.MYD
cars.MYI
customers.frm
customers.MYD
customers.MYI
departments.frm
departments.MYD
departments.MYI
...
含む車、顧客、部門テーブル情報。
次の簡単なタスクを実行するには、シェルスクリプトが必要です。
db_1_temp
という名前の新しいディレクトリを作成します。/var/lib/mysql/
関連ファイルの移動車そして顧客ディレクトリのテーブルをディレクトリ
db_1
にdb_1_temp
db_2
ディレクトリ内のファイルをdb_1
ディレクトリに移動
ノート、ユーザーに必要根アクセス権 /var/lib/mysql/
他のアプリケーションで実行できるように、これらの内容を.shファイルに入れる必要があります。
申し訳ありません。シェルスクリプトについてはわかりませんが、このようなものが必要です。誰でも助けてくれてありがとう。このシェルスクリプトは難しくないと思います。今は他のソフトウェア開発に忙しいので、時間をかけてシェルを学びようとしています。ありがとうございます!
答え1
データベースディレクトリの名前を直接変更しないでください。代わりに、データベースをダンプし、新しいデータベース名を作成し(新しいディレクトリ名が作成されます)、データベースを新しいデータベース名に再ダンプします。
mysqldump -u username -p olddatabase > olddbdump.sql
mysqladmin -u username -p create newdatabase
mysql -u username -p newdatabase < olddbdump.sql
データベースが正常に動作していることを確認したら、データを削除できます。
mysqladmin -u username -p drop oldatabase.
バラよりここ参考用。
あなたの場合は、tmpデータベースを作成し、db_1データベースをその一時データベースにダンプし、db_2データベースを削除して再作成し、db_2データベースを空の新しいdb_1データベースにダンプできます。
答え2
まあ、ファイルを移動するだけなので複雑なことはありません。 3つのmvコマンドだけが必要です。
#!/bin/bash
mkdir /var/lib/mysql/db_1_temp
mv /var/lib/mysql/db_1/cars* /var/lib/mysql/db_1_temp
mv /var/lib/mysql/db_1/customers* /var/lib/mysql/db_1_temp
mv /var/lib/mysql/db_2/* /var/lib/mysql/db_1_temp
ただし、新しいデータベースを使用する予定の場合は、空の新しいデータベースを作成し、mysqldumpを使用して必要なテーブルをインポートすることをお勧めします。