如何更改MYSQL默认数据库的目录?

如何更改MYSQL默认数据库的目录?
网上有很多人这么说:
打开mysql安装目录中的my.ini

修改
#*** INNODB Specific options ***
innodb_data_home_dir="F:/MySQLDATA/"

重启mysql后,新建立的库会保存在这个f:\mysqldata目录中,
注意,这个目录必须有mysql运行用户的全部访问权限。

但是停止后不能启动了,是不是“这个目录必须有mysql运行用户的全部访问权限。”的问题,是什么意思?如何更改MYSQL运行用户的访问权限?

  1.停止数据库服务:
  使用/etc/init.d/mysql stop 或者 stop mysql

  2. 在目标位置(/data)创建数据库文件的目录(如/mysqldb),并复制(如果不再使用默认的位置,则可以直接mv原先数据库文件到新目录下)原先的数据库文件目录到该目录下:
  cd /data

  mkdir mysqldb
  cp -r /var/lib/mysql /data/mysqldb/
  经过一段时间的等待后,在/data/mysqldb/下面就有了原先默认的mysql数据库文件目录的拷贝“/mysql”
  
  3.修改my.cnf文件
  # vim /etc/mysql/my.cnf
  将datadir = /var/lib/mysql 改为 datadir = /data/mysqldb/mysql
  另外由于当前my.cnf 中的socket = /var/run/mysqld/mysqld.sock(而并非像网上所说的sock = /var/lib/mysql/mysql.sock),即socket的位置并不在数据库文件所在的位置,因此可以不做类似网上其他网页所说的,要使用以下的命令做一个mysql.sock 链接:
  ln -s /data/mysqldb/mysql/mysql.sock /var/lib/mysql/mysql.sock (需要从/home/data/mysql下复制一份过来)

  4. 修改数据库的权限:
  # chown -R mysql:mysql /data/mysqldb/mysql/  ← 改变数据库文件目录的归属为mysql
  # chmod 700 /data/mysqldb/mysql/whois/  ← 改变数据库目录whois的属性为700

  # chmod 660 /data/mysqldb/mysql/whois/*  ← 改变数据库中数据表的属性为660

 
  5. 修改文件usr.sbin.mysqld
  # vim /etc/apparmor.d/usr.sbin.mysqld

  把
  /var/lib/mysql r,
  /var/lib/mysql/** rwk,
  
  改成
  /data/mysqldb/mysql/ r,
  /data/mysqldb/mysql/** rwk,

  注意:没有该步骤的话,将导致数据库服务无法重启,好像在重启,但是一直卡住无反应。
  

  6.启动mysql服务器
  /etc/init.d/apparmor restart  
  /etc/init.d/mysql restart (或者使用 restart mysql)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-06-28
你上面写的是设置innodb的数据目录,而不是默认的,默认的是data_dir.本回答被网友采纳
第2个回答  2010-06-23
应该是这个参数:

datadir="F:/MySQLDATA/"
第3个回答  2010-06-22
不是权限问题,而是你路径参数配置不对
hi我吧
相似回答