mysql更改默认数据库路径的问题

最帅马老师 2010-04-19 04:07:03
系统环境是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] Aborting

100419 16:00:27 [Note] /usr/libexec/mysqld: Shutdown complete

100419 16:00:27 mysqld ended


烦请有相关经验的朋友指点下
...全文
4960 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuanzhuohang 2012-05-19
  • 打赏
  • 举报
回复
chcon system_u:object_r:mysqld_db_t:s0 -R /mysql
fishdlf 2010-05-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kktemp234 的回复:]

仰天大笑三声,终于找到毛病了。就是SELINUX的权限限制。

谢谢楼上各位热心帮助。
在一篇老外的帖子中找到了大概原因,大概原因是安装了SELINUX策略后,无论APACHE或MYSQL都要更改目录的权限,如果是APACHE,方法为:
# chcon -R -h -t httpd_sys_content_t /www/web/
如果是mysql,方法为:
# chcon -R ……
[/Quote]
找了好久,终于解决问题,太感谢了!!
iihero 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 kktemp234 的回复:]

仰天大笑三声,终于找到毛病了。就是SELINUX的权限限制。

谢谢楼上各位热心帮助。
在一篇老外的帖子中找到了大概原因,大概原因是安装了SELINUX策略后,无论APACHE或MYSQL都要更改目录的权限,如果是APACHE,方法为:
# chcon -R -h -t httpd_sys_content_t /www/web/
如果是mysql,方法为:
# chcon -R ……
[/Quote]

原来这样,...
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 iihero 的回复:]

引用 9 楼 kktemp234 的回复:

引用 7 楼 iihero 的回复:

不能直接这么改吧,改完之后,应该重建 数据库文件。(在权限分配清楚之后)

数据库文件都是重建好的

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

服务无法启动,应该就不是数据库的问题。
即便数据库有问题,没有启动服务也发现不了问题啊
iihero 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 kktemp234 的回复:]

引用 7 楼 iihero 的回复:

不能直接这么改吧,改完之后,应该重建 数据库文件。(在权限分配清楚之后)

数据库文件都是重建好的
[/Quote]
你目录位置都修改了,原来的data目录下的东西已经没有意义了。得重建数据文件。在你的描述当中,没看到你怎么重建数据文件。主要是系统数据库mysql。
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
仰天大笑三声,终于找到毛病了。就是SELINUX的权限限制。

谢谢楼上各位热心帮助。
在一篇老外的帖子中找到了大概原因,大概原因是安装了SELINUX策略后,无论APACHE或MYSQL都要更改目录的权限,如果是APACHE,方法为:
# chcon -R -h -t httpd_sys_content_t /www/web/
如果是mysql,方法为:
# chcon -R -t mysqld_db_t /mysql

重新启动服务,OK
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 iihero 的回复:]

不能直接这么改吧,改完之后,应该重建 数据库文件。(在权限分配清楚之后)
[/Quote]
数据库文件都是重建好的
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]

应该是权限问题
chown -R mysql:mysql /data/mysql

再启动一下试试
[/Quote]

还是这样,现在怀疑是SELINUX的限制
iihero 2010-04-19
  • 打赏
  • 举报
回复
不能直接这么改吧,改完之后,应该重建 数据库文件。(在权限分配清楚之后)
wwwwb 2010-04-19
  • 打赏
  • 举报
回复
应该是权限问题
chown -R mysql:mysql /data/mysql

再启动一下试试
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
原配置文件内容为:
[root@localhost mysql]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

user=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
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
第一次更改为:
[root@localhost mysql]# cat /etc/my.cnf
[mysqld]
datadir=/mysql
socket=/mysql/mysql.sock

user=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有写入权限了的
wwwwb 2010-04-19
  • 打赏
  • 举报
回复
配置文件内容是什么?
ACMAIN_CHM 2010-04-19
  • 打赏
  • 举报
回复
/etc/my.cnf 改成什么样了?
最帅马老师 2010-04-19
  • 打赏
  • 举报
回复
目录的权限已更改为755,属于用户mysql:mysql

56,687

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧