Answers:
以管理员身份打开Windows CLI并关闭MySQL
net stop mysql
将数据复制到 D:\ProgramData\Data
xcopy /s C:\ProgramData\MySQL\MySQL Server 5.6\data D:\ProgramData\Data
建立或编辑 C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
将此添加到 my.ini
[mysqld]
datadir = D:/ProgramData/Data
启动MySQL
net start mysql
如果无法执行net start mysql
,请尝试Windows控制面板。
登录到MySQL并验证一切正常
登录到MySQL时,运行此命令
mysql> SHOW GLOBAL VARIABLES LIKE 'datadir';
切记为新数据目录授予用户与默认数据目录所使用的网络服务和管理员相同的完全权限,否则将导致可怕的“启动然后停止”错误。在确定新目录有效之前,请勿删除此目录。
如果这不起作用,请执行以下回滚计划:
net stop mysql
del "C:\ProgramData\MySQL\MySQL Server 5.6\my.ini"
net start mysql
在Windows 10上为MySQL服务器8.0添加当前答案,以了解如何在安装后更改数据库目录(我在Internet上搜索它,但未找到解决方案,并且几乎发疯了,因此希望对您有所帮助)。
第一步与MySQL Server 5.6的其他常规说明相同。唯一的区别基本上是第三步:
转到服务(例如,按WIN + R,然后按Enter键services.msc
),然后MySQL80
通过右键单击并单击“停止”来停止服务(服务名称是在安装过程中指定的,因此名称可能与您不同)。
将数据库文件夹移动到所需的位置。初始位置通常为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"
现在,在移动数据库并重命名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
请注意,当然,只需更改配置文件的路径。
现在可以再次启动该服务!再次转到服务,然后右键单击该MySQL80
服务以再次选择“启动”选项,它将重新启动而不会出现问题。如果跳过步骤3,则重新启动通常将不起作用!