系统环境是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
烦请有相关经验的朋友指点下
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
烦请有相关经验的朋友指点下
[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有写入权限了的
[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
chown -R mysql:mysql /data/mysql 再启动一下试试
还是这样,现在怀疑是SELINUX的限制
在一篇老外的帖子中找到了大概原因,大概原因是安装了SELINUX策略后,无论APACHE或MYSQL都要更改目录的权限,如果是APACHE,方法为:
# chcon -R -h -t httpd_sys_content_t /www/web/
如果是mysql,方法为:
# chcon -R -t mysqld_db_t /mysql重新启动服务,OK