Linux下更改datadir的方式:
linux下,MySQL默认的数据文档存储目录为/var/lib/mysql。假如要把MySQL目录移到/home/data下需要进行下面几步:
1、home目录下建立data目录
cd /home
mkdir data
2、把MySQL服务进程停掉:
mysqladmin -u root -p shutdown
3、把/var/lib/mysql整个目录移到/home/data
mv /var/lib/mysql /home/data/
这样就把MySQL的数据文档移动到了/home/data/mysql下
4、找到my.cnf配置文档
假如/etc/目录下没有my.cnf配置文档,请到/usr/share/mysql/下找到*.cnf文档,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
5、编辑MySQL的配置文档/etc/my.cnf
为确保MySQL能够正常工作,需要指明mysql.sock文档的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock。操作如下:
vi my.cnf (用vi工具编辑my.cnf文档,找到下列数据修改之)
# The MySQL server
[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock(原内容,为了更稳妥用“#”注释此行)
socket =/home/data/mysql/mysql.sock (加上此行)
6、修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成您现在的实际存放路径:home/data/mysql。
[root@test1 etc]# vi /etc/init.d/mysql
#datadir=/var/lib/mysql (注释此行)
datadir=/home/data/mysql (加上此行)
如果是CentOS还要改/usr/bin/mysqld_safe 相关文件位置;
最后做一个mysql.sock 链接:
ln -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
7、重新启动MySQL服务
/etc/init.d/mysql start
或用reboot命令重启Linux
假如工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。
复制内容到剪贴板
代码:
[root@sample ~]# chown -R mysql:mysql /home/data/mysql/ ← 改变数据库的归属为mysql
[root@sample ~]# chmod 700 /home/data/mysql/test/ ← 改变数据库目录属性为700
[root@sample ~]# chmod 660 /home/data/mysql/test/* ← 改变数据库中数据的属性为660
在Windows下:
1,更改MySQL配置文件My.ini中的数据库存储主路径
打开MySQL默认的安装文件夹C:\ProgramFiles\MySQL\MySQL Server 5.1中的my.ini文件,点击记事本顶部的“编辑”,“查找”,在查找内容中输入datadir后并点击“查找下一个”转到“Path to the database root数据库存储主路径”参数设置,找到datadir="C:/Documents and Settings/AllUsers/Application Data/MySQL/MySQL Server 5.1/Data/"即是默认的数据库存储主路径设置,现将它改到C:\mysql\data(你希望的)文件夹,正确的设置是datadir="C:/mysql/data/"。
更改完成后点击菜单栏的“文件”,再点击“保存”。
2,将老的数据库存储主路径中的数据库文件和文件夹复制到新的存储主路径
将C:/Documentsand Settings/All Users/Application Data/MySQL/MySQL Server 5.1/Data/文件夹中的所有文件和文件夹拷贝到你新建的文件夹目录下。
3,重启MySQL服务
4,验证更改数据库存储主路径的操作是否成功
为了验证更改是否已经成功,我们可以在MySQL中新建一个命名为xunmeinet的数据库,建立完毕后观察C:\mysql\data文件夹是否多了一个与数据库名同名的文件夹,