Linux 中文件和文件夹获取 MySQL 权限(SELinux)


今天在 Linux 系统上移动 MySQL 的数据库目录

配置如下:

/etc/my.cnf

[mysqld]
datadir=/home/mysql
socket=/var/lib/mysql/mysql.sock

更改完配置文件重启MYSQL的时候出现的以下问题

110222 11:15:07 mysqld_safe Starting mysqld daemon with databases from /home/mysql
110222 11:15:07 [Warning] Can't create test file /home/mysql/localhost.lower-test
110222 11:15:07 [Warning] Can't create test file /home/mysql/localhost.lower-test
 /usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110222 11:15:07 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110222 11:15:07  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
110222 11:15:07 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

当初以为只是文件或文件夹权限问题,把所有对应的目录和文件的权限改成读写状态...还是没用...

在网上找了一会儿,找到解决方法了~

解决方法如下:

#在终端中先输入下面这一行

chown -R mysql:mysql /home/data/mysql
#在输入下面的一行就OK了

chcon -R -t mysqld_db_t /home/mysql

#重启下MYSQL试试~

/etc/init.d/mysqld restart

相关内容