系统环境是CENTOS 5.4,MYSQL版本是5.0.77
MYSQL默认数据库路径是/var/lib/mysql,现在希望将其更改为/mysql目录。/mysql目录挂载着另外一块硬盘。按照网上的说明,第一次做法是将/etc/my.cnf和/etc/init.d/mysqld中的路径,将其更改为/mysql
但是无法启动服务,日志显示内容为:
Can't change dir to '/mysql/' (Errcode: 13)第二次,更改mount配置,将第二块硬盘直接挂载至/var/lib/mysql目录中,将所有配置文件改回。
还是无法启动服务,错误内容一样:100419 16:00:27  mysqld started
100419 16:00:27 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
100419 16:00:27 [Warning] Can't create test file /var/lib/mysql/localhost.lower-test
/usr/libexec/mysqld: Can't change dir to '/var/lib/mysql/' (Errcode: 13)
100419 16:00:27 [ERROR] Aborting100419 16:00:27 [Note] /usr/libexec/mysqld: Shutdown complete100419 16:00:27  mysqld ended
烦请有相关经验的朋友指点下

解决方案 »

  1.   

    目录的权限已更改为755,属于用户mysql:mysql
      

  2.   

    /etc/my.cnf 改成什么样了?
      

  3.   

    第一次更改为:
    [root@localhost mysql]# cat /etc/my.cnf
    [mysqld]
    datadir=/mysql
    socket=/mysql/mysql.sockuser=mysql# Default to using old password format for compatibility with mysql 3.x
    # clients (those using the mysqlclient10 compatibility package).
    old_passwords=1[mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid第二次没有做更改,将第一次更改前备份的原配置文件覆盖过来这个错误貌似是写入权限的问题,但我明明已指定给MYSQL有写入权限了的
      

  4.   

    原配置文件内容为:
    [root@localhost mysql]# cat /etc/my.cnf
    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sockuser=mysql# Default to using old password format for compatibility with mysql 3.x
    # clients (those using the mysqlclient10 compatibility package).
    old_passwords=1[mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
      

  5.   

    应该是权限问题
    chown -R mysql:mysql /data/mysql 再启动一下试试
      

  6.   


    还是这样,现在怀疑是SELINUX的限制
      

  7.   

    仰天大笑三声,终于找到毛病了。就是SELINUX的权限限制。谢谢楼上各位热心帮助。
    在一篇老外的帖子中找到了大概原因,大概原因是安装了SELINUX策略后,无论APACHE或MYSQL都要更改目录的权限,如果是APACHE,方法为:
    # chcon  -R -h -t httpd_sys_content_t  /www/web/
    如果是mysql,方法为:
    # chcon -R -t mysqld_db_t /mysql重新启动服务,OK
      

  8.   

    你目录位置都修改了,原来的data目录下的东西已经没有意义了。得重建数据文件。在你的描述当中,没看到你怎么重建数据文件。主要是系统数据库mysql。
      

  9.   

    chcon system_u:object_r:mysqld_db_t:s0 -R /mysql