mysql提示[Warning] Cant create test file xxx lower-test

我想,你一定是从seo/seo.html" target="_blank">搜索引擎搜索这个标题进来的!你一定是想改变mysql默认安装的数据目录!
你已经修改了my.cnf中的datadir的值

首先是查看数据库日志

mysqld started

[Warning] Can't create test file xxx.lower-test
[Warning] Can't create test file xxx.lower-test
/usr/libexec/mysqld: Can't change dir to '/xxx' (Errcode: 13)
[ERROR] Aborting

 

你已经chown和chmod了数次新数据目录或者其父路径的属主和权限

你无数次地试图service mysql start,或者 /etc/init.d/mysql start,以及mysql_install_db!

恭喜你看见这篇文章,我在被系统坑了几个小时之后,找到了解决的方法。

这个原因有二,其中任意的一个原因都会造成你被系统告知这个warning。如果你不是一个专业的linux系统安全工程师,或者你只是个PHP程序员,并没有对系统安全有深入的研究,你就不会太容易找到它的答案。

第一,selinux,记得当年念书时,字符界面安装redhat(很古老的操作系统么。。。)的时候,有这么一个选项,通常大家都听取前辈的建议,改变默认值以不安装它。但如果你恰好要操作的这台机器开着selinux,它确实能够使你的mysql无法在新目标位置进行mysql_install_db的操作,并爆出标题所示的警告。一个简单的解决办法是使用命令暂时关闭selinux,以便让你的操作可以继续下去
setenforce 0

但最好使用一个永久方法,以便在重启后继续不要这货。

修改/etc/selinux/config文件中设置SELINUX=disabled ,然后重启或等待下次重启。

第二,apparmor,这个坑爹货和selinux一样的坑爹,它也对mysql所能使用的目录权限做了限制
在 /etc/apparmor.d/usr.sbin.mysqld 这个文件中,有这两行,规定了mysql使用的数据文件路径权限

/var/lib/mysql/ r,
/var/lib/mysql/** rwk,

你一定看到了,/var/lib/mysql/就是之前mysql安装的数据文件默认路径,apparmor控制这里mysqld可以使用的目录的权限
我想把数据文件移动到/data/mysql下,那么为了使mysqld可以使用/data/mysql这个目录,照上面那两条,增加下面这两条就可以了

/data/mysql/ r,
/data/mysql/** rwk,

重启apparmor,/etc/inid.d/apparmor restart

之后,就可以顺利地干你想干的事儿了!

时间: 2024-10-02 08:21:56

mysql提示[Warning] Cant create test file xxx lower-test的相关文章

mysql提示[Warning] Invalid table or database name

DROP TABLE IF EXISTS [TEMP_TABLE_NAME]; create temporary table [TEMP_TABLE_NAME] select col1,col2,... from [TABLE_NAME]; alter table [TEMP_TABLE_NAME] add unique idx_col1(col1); 经过以上操作中,多次出现该warning问题.通过查询和跟踪调试源码,有以下线索和处理方式: mysql的"[Warning] Invalid

MySQL中can't create PID file: No such file or directory错误的解决方法

风信网(ithov.com)原创文章:安装mysql完成之后,启动mysql报以下错误信息 [root@localhost mysql]# /usr/local/mysql/bin/mysqld_safe & 131206 22:50:00 mysqld_safe Logging to '/var/log/mysqld.log'. 131206 22:50:00 mysqld_safe Starting mysqld daemon with databases from /data/mysql/

mysql提示[Warning] Invalid (old?) table or database name问题的解决方法_Mysql

DROP TABLE IF EXISTS [TEMP_TABLE_NAME]; create temporary table [TEMP_TABLE_NAME] select col1,col2,... from [TABLE_NAME]; alter table [TEMP_TABLE_NAME] add unique idx_col1(col1); 经过以上操作中,多次出现该warning问题.通过查询和跟踪调试源码,有以下线索和处理方式: mysql的"[Warning] Invalid

mysql错误:ERROR 29 (HY000): File 'xxx.txt' not found (Errcode: 13)

突然遇到mysql错误:ERROR 29 (HY000): File '/var/www/xiaoyou/static/upload/import/20130427105733.csv.txt' not found (Errcode: 13) 感觉特奇怪,因为程序在本地很ok,生气了语句如下: LOAD DATA INFILE '/var/www/upload/abc.csv.txt' INTO TABLE alumni_import FIELDS TERMINATED BY ',' OPTIO

解决mysql ERROR 1017:Can't find file: '/xxx.frm' 错误_Mysql

出现这个问题的原因不是'/xxx.frm'这个文件不见了,而是这些文件的权限(应该要是mysql)不知道为什么变成了root. 解决方法:cd到xxx.frm文件所在目录下,执行一下命令:chown mysql.mysql * 将所有文件的权限都改过来就可以了!

linux编译安装mysql提示Warning: prerequisite DBD::mysql 3 not found错误

在编译percona-toolkit-2.2.9时出现出现如下错误: Checking if your kit is complete- Looks good Warning: prerequisite DBD::mysql 3 not found. Writing Makefile for percona-toolkit 根据建议应该是perl使用的mysql模块未安装所致 解决方案如下: 1.若是centos机器又是有安装yum的话,那么直接yum install perl-DBD-MySQ

linux下mysql提示"mysql deamon failed to start"错误的解决方法_Mysql

有台linux服务器,系统为centos系统. 网站突然连接不上数据库,于是朋友直接重启了一下服务器.进到cli模式下,执行 service myqsld start 发现还是提示"mysql deamon failed to start"错误信息. # /etc/init.d/mysqld start MySQL Daemon failed to start. Starting mysqld: [FAILED] 查看mysqld的log文件 #less /var/log/mysqld

mysql提示mysql daemon failed to start解决办法

进到cli模式下,执行 service myqsld start 发现还是提示"mysql deamon failed to start"错误信息.   # /etc/init.d/mysqld start   MySQL Daemon failed to start.   Starting mysqld: [FAILED]   查看mysqld的log文件   #less /var/log/mysqld.log   /usr/libexec/mysqld: Can't change

MySQL无法重启提示Warning: World-writable config file

今天帮朋友维护服务器,在关闭数据库的命令发现mysql关不了,提示Warning: World-writable config file '/etc/my.cnf' is ignored ,大概意思是权限全局可写,任何一个用户都可以写.mysql担心这种文件被其他用户恶意修改,所以忽略掉这个配置文件.这样mysql无法关闭. 下面看下整个过程 重启MySQL  代码如下 复制代码 [root@ttlsa ~] # service mysqld stop Warning: World-writab