MySQL xampp 更改数据目录不起效的问题解决方法
在本文中,我们将介绍一个常见的问题:在使用xampp中更改MySQL数据目录后,MySQL并没有按照我们的设置去使用新的数据目录。
阅读更多:MySQL 教程
问题描述
我们在xampp中修改MySQL配置文件my.ini,将datadir改为新的数据目录,如下:
# The MySQL server
[mysqld]
port= 3306
socket= "C:/xampp/mysql/mysql.sock"
basedir= "C:/xampp/mysql"
datadir= "E:/mysql_data"
但在MySQL启动后,我们发现它仍然在原先的数据目录下创建了新的数据文件,而没有使用我们设置的E:/mysql_data。
问题原因分析
这个问题的原因是,我们只是在my.ini中修改了datadir这个变量的值,但并没有告诉MySQL要使用新的数据目录。因为在xampp中,MySQL是作为一个Windows服务启动的,我们需要修改Windows服务的配置,才能让MySQL使用新的数据目录。
解决方案
- 停止MySQL服务
在Windows服务中,找到MySQL服务,停止它。
- 复制数据文件
将原来的MySQL数据目录下的所有内容拷贝到新的数据目录中。比如,我们将C:/xampp/mysql/data目录下的所有文件拷贝到E:/mysql_data目录下。
- 修改Windows服务配置
以管理员身份运行命令行工具,在命令行中输入以下命令:
sc config mysql binPath= "\"C:\xampp\mysql\bin\mysqld.exe\" --defaults-file=\"C:\xampp\mysql\bin\my.ini\" --datadir=\"E:\mysql_data\" --service mysql"
注意:上面命令中第二个引号前需要加上反斜杠,否则会出错。
这个命令会将MySQL服务的binPath属性修改为指向我们修改后的my.ini文件,并且设置MySQL的数据目录为新的数据目录。如果出现了Access Denied错误,请确认你有管理员权限。
- 启动MySQL服务
在Windows服务中,启动MySQL服务。此时MySQL应该会按照我们的设置启动,并且使用新的数据目录。
总结
在使用xampp中更改MySQL数据目录的时候,不仅需要修改my.ini文件中的datadir变量,还需要修改Windows服务的配置,才能让MySQL使用新的数据目录。如果出现问题,可以尝试按照上述方法进行解决。
极客教程