修改MySQL默认数据库存放路径

修改MySQL默认数据库存放路径

时间:2016-09-13 作者:xphero210 评论:0 点击:1070 次

Windows系统:


把MySQL装在了C:\Program Files\MySQL\MySQL Server 5.0,默认的数据库文件是放在C:\Program Files\MySQL\MySQL Server 5.0\data下。 


但现在在D盘下做项目,因此一个数据库就放在了D盘,路经是这样的:D:\eclipse\workspace\pro1\lib\db。 


找到了my.ini的配置文件中的: 


datadir="C:/Program Files/MySQL/MySQL Server 5.0/Data/" 


将其修改成:datadir="D:/eclipse/workspace /pro1/lib/db/" 


BUT我重启的时候,MySQL服务启动不了了。而且用MySQL-Front连接的时候提示: 主机127.0.0.1找不到。 


答:


使用符号链接吧,下面是mysql 5.0手册上的例子。 


Suppose that the MySQL data directory is C:\mysql\data and you want to have database foo located at D:\data\foo. Set up a symlink using this procedure 


Make sure that the D:\data\foo directory exists by creating it if necessary. If you already have a database directory named foo in the data directory, you should move it to D:\data. Otherwise, the symbolic link will be ineffective. To avoid problems, make sure that the server is not running when you move the database directory. 


Create a text file C:\mysql\data\foo.sym that contains the pathname D:\data\foo\. 


After this, all tables created in the database foo are created in D:\data\foo. Note that the symbolic link is not used if a directory with the same name as the database exists in the MySQL data directory. 


假设你的mysql安装在c:\mysql,数据目录就是c:\mysql\data,现在你想在D 盘建立一个名为foo的数据库,路径为d:\data\foo. 


首先:保证d:\data\foo目录存在,如果没有就创建或 者你c:\mysql\data下面有,就把它剪切过来,当然在停止mysql的情况下作移动,否则是不起任何作用的。 


再次: 在c:\mysql\data目录下建立一个文本文件命名为foo.sym,文件名与数据库名相同,后缀名为sym,里面的内容为:D:\data \foo\,就是foo数据库的绝对路径。



Linux系统:


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


已有 1070 位网友参与,快来吐槽:

发表评论

必填

选填

选填

◎欢迎参与讨论,发表您的看法、交流您的观点。