web-dev-qa-db-ja.com

MySQL DBサーバーのデータディレクトリの変更

MySQLサーバー5.6.24をWindows Server 2012 R2にインストールしました。

ダンプファイルをインポートしました。データファイルはC:\ProgramData\MySQL\MySQL Server 5.6\dataに保存されています

D:\ProgramData\Dataのようにディレクトリを変更したい。

誰か助けてくれませんか?

10
user73314
  1. 管理者としてWindows CLIを開き、MySQLをシャットダウンします。

    net stop mysql
    
  2. データをD:\ProgramData\Dataにコピーします

    xcopy /s C:\ProgramData\MySQL\MySQL Server 5.6\data D:\ProgramData\Data
    
  3. 作成または編集C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

    これをmy.iniに追加します

    [mysqld]
    datadir = D:/ProgramData/Data
    
  4. スタートアップMySQL

    net start mysql
    

    net start mysqlを実行できない場合は、Windowsのコントロールパネルをお試しください。

  5. MySQLにログインし、すべてが良好であることを確認します

MySQLにログインしたら、これを実行します

mysql> SHOW GLOBAL VARIABLES LIKE 'datadir';

新しいデータディレクトリに、デフォルトのデータディレクトリが使用していたユーザーNetwork ServiceおよびAdministratorと同じ完全なアクセス許可を与えることを忘れないでください。停止」エラー。新しいディレクトリが機能していることを確認するまで、このディレクトリを削除しないでください。

これが機能しない場合、ロールバック計画は次のとおりです。

net stop mysql
del "C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"
net start mysql
10
RolandoMySQLDBA

インストール後にデータベースディレクトリを変更する方法について、Windows 10上のMySQLサーバー8.0の現在の回答を追加しました(インターネットで検索して解決策が見つからず、ほとんど夢中になったので、これが誰かに役立つことを願っています)。

最初の手順は、MySQL Server 5.6の通常の他の手順と同じです。唯一の違いは基本的に3番目のステップです。

  1. サービスに移動し(たとえば、WIN + Rを押し、_services.msc_と入力し、Enterキーを押します)、_MySQL80_サービスを右クリックして[停止]をクリックします(サービス名はインストール中に指定されるため、名前は異なる場合があります)。

  2. データベースフォルダを任意の場所に移動します。通常、最初の場所は_C:\ProgramData\MySQL\MySQL Server 8.0\data_です。 _C:\ProgramData\MySQL\MySQL Server 8.0\_フォルダー内には、_my.ini_ファイルが必要です。それを開いてNotepad ++(または他のメモ帳)で編集し、古い場所を何らかの形で示す行を検索します。これは2回出現するはずです(1つはdatadir用、もう1つは_secure-file-priv_用)。両方の名前を対応する新しい場所に変更します(おそらくdatadir部分の名前を変更するだけで十分ですが、申し訳ありませんが安全です)。最初は通常、次のようになります。

    _datadir=C:/ProgramData/MySQL/MySQL Server 8.0/Data
    _

    そして

    _secure-file-priv="C:/ProgramData/MySQL/MySQL Server 8.0/Uploads"
    _

    新しい場所を_E:/MySQL/MySQL Server 8.0/..._にする必要がある場合は、次のように両方のエントリの名前を変更します。

    _datadir=E:/MySQL/MySQL Server 8.0/Data
    _

    そして

    _secure-file-priv="E:/MySQL/MySQL Server 8.0/Uploads"
    _
  3. ここで、データベースを移動し、_my.ini_ファイルのエントリの名前を変更した後、サービスを再起動する前に、レジストリエディターを開き(たとえば、WIN + Rを押し、「regedit」と入力し、Enterキーを押します)、_Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MySQL80_(ここでも、_MySQL80_はインストール時に選択したMySQLサービスのサービス名であり、_MySQL80_とは異なる場合があります)ImagePathエントリを右クリックして、変更を選択します。次のような文字列が表示されます。

    _"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini" MySQL80
    _

    これは基本的に、追加のconfig-fileパラメーターを使用してサービスによって実行される実際のexeファイルへのリンクです。つまり、以前に変更した_my.ini_ファイルです。したがって、もちろん、ここでは、構成ファイルへのパスも移動されたため、更新する必要があります。この例では、次のように変更します。

    _"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe" --defaults-file="E:\MySQL\MySQL Server 8.0\my.ini" MySQL80
    _

    もちろん、設定ファイルのパスのみを変更する必要があることに注意してください。

  4. これでサービスを再開できます!サービスに再度移動し、_MySQL80_サービスを右クリックして「開始」オプションを再度選択すると、問題なく再起動するはずです。手順3をスキップした場合、通常、再起動は機能しません。

0
kushy