web-dev-qa-db-ja.com

MySQLデータベースを別のドライブに移動するにはどうすればよいですか?

ローカルマシンでMySQL 5.5を使用して、大量の政府データを分析しています。デフォルトのドライブ(Win7 C:ドライブ)に常駐するローカルデータベースを作成しました。大容量のeSATA外付けドライブであるE:ドライブにデータを保存したい。

どのような手順を踏む必要がありますか?

38
user1243473
  1. Mysqlをシャットダウンします。
  2. 現在のデータディレクトリにあるすべてのファイルを新しい場所に移動します(手順3の場所を確認してください-datadirパラメーター)。
  3. 検索my.iniファイル(mysqlのインストールディレクトリにあります)。 datadirパラメータ値を変更して、新しい場所を指すようにします。
  4. Mysqlを起動します。
39
ITCuties

あなたはウィンドウを求めていますが、 here は、ここでlinux/ubuntuの方向を探している人にとって良い方向です:

仮定:

  • 外部/ USB /代替ドライブにMySQLデータがあります/mountpoint/var/lib/mysql、おそらく、死んだか古いインストールのコンピュータから
  • ローカルに新しいUbuntuインストールに移動したい/var/lib/mysql
  • MySQLを停止するには:
    Sudo /etc/init.d/mysql stop
  • 現在の(クリーンな)MySQLデータディレクトリのバックアップを作成します。
    Sudo cp -Rp /var/lib/mysql /var/lib/mysql.backup
  • 次に、古いドライブから古いデータディレクトリをコピーします。
    Sudo cp -Rp /mountpoint/var/lib/mysql /var/lib/mysql
    ここで、mountpointはマウントへのパスです。
  • MySQLを再起動します。
    Sudo /etc/init.d/mysql start

運が良ければ、MySQLが再起動し、古いデータベースが復元されます。

ソース[email protected]

7
Cyrille

解決策1:

  1. まず、 `mysqldumpを使用してデータをバックアップします。
  2. Mysql Serverを公式パッケージからインストールする場合は、サーバーのbinディレクトリからMySQLINstanceConfig.exeプログラムを実行することで実行できます。
  3. データをインポートする

MySQLINstanceConfig.exe

2番目のソリューション(非推奨ですが、同じマシンで機能します)

  1. Mysqlサーバーを停止します。
  2. データディレクトリから新しいディレクトリにデータをコピーする
  3. My.cnfファイルを開きます(私の場合は "C:\ ProgramData\MySQL\MySQL Server 5.5\my.ini")
  4. datadir = "C:\ ProgramData\MySQL\MySQL Server 5.5\data \"のような行を見つけ、パスを新しい場所に変更します
  5. サーバーを起動する

バージョン5.6以降、MySQLInstanceConfig.exeは配布されなくなりました。この機能はインストーラーに置き換えられています。 http://bugs.mysql.com/bug.php?id=66306

4
rkosegi

Windowsの場合、 MySQL Installer 1.4.6(2015-04-07) 以降、データの場所はmy.iniファイルの場所を指定するレジストリキーで指定できるため、データがデフォルト以外の場所に最初にインストールされた場合、my.iniファイルはC:\ProgramData\MySQL\MySQL Server x.x\にありません。

レジストリ値の場所は次のとおりです(少なくともMySQL 5.6以降)。

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MySQL AB\MySQL Server x.x\

Locationは、MySQLアプリケーションファイルが配置されているフォルダーを指すREG_SZです。デフォルト:C:\Program Files\MySQL\MySQL Server x.x\

DataLocationREG_SZであり、my.iniが配置されているフォルダーを指します。デフォルトでも:C:\Program Files\MySQL\MySQL Server x.x\

また、my.iniファイルパスは、このレジストリキーの下のサービスコマンドに含まれています:ImagePathHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MySQLXX値のREG_EXPAND_SZ

この文字列のデフォルト値は次のとおりです:"C:/Program Files/MySQL/MySQL Server 5.6/bin\mysqld" --defaults-file="C:\Program Files\MySQL\MySQL Server x.x\my.ini" MySQLXX

つまり、このシナリオでデータファイルを移動するには、@ ITCutiesによって投稿されたいくつかの追加手順を実行する必要があります。

完全な手順は次のとおりです。

  1. Mysqlをシャットダウンします。
  2. 上記のDataLocationレジストリ値を調べて、現在のmy.iniファイルの場所を見つけます。my.iniファイルも移動する場合は、DataLocationパスを更新して移動しますこの新しいパスへのmy.iniファイル。
  3. my.iniファイルの場所を変更する場合は、上記のサービスコマンドレジストリキーのパスを更新する必要があります。
  4. my.iniファイルを開き、datadirパラメータを見つけます。このdatadirパスからデータを配置するパスにファイルを移動し、datadirパラメータをこの新しいパスで更新します。
  5. Mysqlを起動します。
2
nextgentech