近日,给CentOS下的MySQL配置数据文件位置,但是每次指定到非MySQL默认安装目录的时候,就无法启动,并且报“The server quit without updating PID file”错误。仔细检查,是权限错误,包括a. MySQL对新建的文件夹是没有访问权限;b. SELinux的权限没有放开。
另外,有的时候ibdata1大小发生变化或者ib_logfile*(默认是ib_logfile0、ib_logfile1两个文件)没有删除也会出现类似的错误,如果修改权限以后还出现错误, 请删除ibdata1、ib_logfile*文件(默认情况下数据都存储在ibdata1文件中,因此删除前请备份系统数据。)
下面是修改数据文件位置的详细方法: 1. 关闭MySQL
service mysql stop2. 创建数据文件夹
注意,MySQL自己不会创建数据文件夹,所以如果文件夹不存在,则必须手动创建。
mkdir /home/test
3. 给新文件及赋予mysql用户权限
chown -R mysql:mysql /home/test/
4. 配置SELinux
chcon -R -t mysqld_db_t /home/test/
5. 修改my.cnf
在[mysqld]节点下加入以下两行。注意,如果innodb_data_file_path要写成绝对路径,则innodb_data_home_dir要留空,否则都是相对innodb_data_home_dir的相对路径。
innodb_data_home_dir =innodb_data_file_path=/var/lib/mysql/ibdata1:18M;/home/test5/ibdata2:10M:autoextend
6. 启动mysql
service mysql start
附:如果是Windows平台,则简单得多,不需要授权,修改配置文件即可。Windows平台的路径要包含在英文双引号中,如下
innodb_data_home_dir =innodb_data_file_path="c:/ibdata1:10M;d:/ibdata2:10M:autoextend"
|