MySQL xampp 更改数据目录不起效的问题解决方法

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使用新的数据目录。

解决方案

  1. 停止MySQL服务

在Windows服务中,找到MySQL服务,停止它。

  1. 复制数据文件

将原来的MySQL数据目录下的所有内容拷贝到新的数据目录中。比如,我们将C:/xampp/mysql/data目录下的所有文件拷贝到E:/mysql_data目录下。

  1. 修改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错误,请确认你有管理员权限。

  1. 启动MySQL服务

在Windows服务中,启动MySQL服务。此时MySQL应该会按照我们的设置启动,并且使用新的数据目录。

总结

在使用xampp中更改MySQL数据目录的时候,不仅需要修改my.ini文件中的datadir变量,还需要修改Windows服务的配置,才能让MySQL使用新的数据目录。如果出现问题,可以尝试按照上述方法进行解决。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程