在MySQL DB服务器上更改数据目录


10

我已经在Windows Server 2012 R2上安装了mysql服务器5.6.24。

我导入了转储文件,数据文件存储在 C:\ProgramData\MySQL\MySQL Server 5.6\data

我想像这样更改目录D:\ProgramData\Data

有人可以帮我吗?

Answers:


10
  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';

切记为新数据目录授予用户与默认数据目录所使用的网络服务管理员相同的完全权限,否则将导致可怕的“启动然后停止”错误。在确定新目录有效之前,请勿删除此目录。

如果这不起作用,请执行以下回滚计划:

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

0

在Windows 10上为MySQL服务器8.0添加当前答案,以了解如何在安装后更改数据库目录(我在Internet上搜索它,但未找到解决方案,并且几乎发疯了,因此希望对您有所帮助)。

第一步与MySQL Server 5.6的其他常规说明相同。唯一的区别基本上是第三步:

  1. 转到服务(例如,按WIN + R,然后按Enter键services.msc),然后MySQL80通过右键单击并单击“停止”来停止服务(服务名称是在安装过程中指定的,因此名称可能与您不同)。

  2. 将数据库文件夹移动到所需的位置。初始位置通常为C:\ProgramData\MySQL\MySQL Server 8.0\data。在C:\ProgramData\MySQL\MySQL Server 8.0\文件夹内,应该有一个my.ini文件。将其打开以使用Notepad ++(或其他一些记事本)进行编辑,然后搜索以某种形式提及旧位置的行。应该有两次出现(一次为datadir,一次为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

    这基本上是指向服务执行的实际exe文件的链接,带有附加的config-file参数,即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,则重新启动通常将不起作用!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.