MySQL [Warning] Can’t create test file xxx lower-test(转)

add by zhj:修改的数据库的datadir,然后数据库就无法启动了,错误如下

复制代码
2014-12-11 16:22:57 26309 [Warning] Can't create test file /data/mysql/server2.lower-test
2014-12-11 16:22:57 26309 [Warning] Can't create test file /data/mysql/server2.lower-test
2014-12-11 16:22:57 26309 [Warning] Buffered warning: Changed limits: max_open_files: 1024 (requested 5000)

2014-12-11 16:22:57 26309 [Warning] Buffered warning: Changed limits: table_cache: 431 (requested 2000)

2014-12-11 16:22:57 26309 [Note] Plugin 'FEDERATED' is disabled.
^G/usr/sbin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13 - Permission denied)
2014-12-11 16:22:57 26309 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
复制代码

后面找到了这篇文章,解决了问题。另外要说明的是,apparmor不仅仅限制了mysql的datadir目录,还限制了config,log等等的目录。

另外,SELinux之于MySQL 这篇文章也写的很好。

 

原文:http://www.huoxingfan.com/834.html

我想,你一定是从搜索引擎搜索这个标题进来的!你一定是想改变mysql默认安装的数据目录

你已经修改了my.cnf中的datadir的值

你已经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 ,然后重启或等待下次重启。(我用的是Azure的Ubuntu14.04,没有这个目录,OK,那就省事了)

 

第二,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,

重启: sudo service apparmor restart

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

  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: 无法创建测试文件c:\program files\mysql\mysql server 8.0\data\mysqld_tmp_file_case_insensitive_test.lower-test。 ### 回答2: 这个错误通常是由于操作系统权限不足造成的。文件系统为了保证数据的安全性,在操作时会对当前用户的权限进行判断,以确保用户的操作不会对系统造成损害。 在 Windows 系统中,默认情况下,程序在 Program Files 目录下是只读的,您的用户账户并没有足够的权限在这个目录下创建文件。因此MySQL在创建测试文件时会抛出这个错误。 为了解决这个问题,您可以考虑以下几个方案: 1. 在连接 MySQL 时使用管理员账户运行命令行或应用程序。这将赋予您足够的权限。 2. 更改文件权限。在文件资源管理器中右键单击目标文件,选择“属性”,然后单击“安全”选项卡。单击“编辑”按钮,在弹出的对话框中添加当前用户的账户,并为其授予“完全控制”权限。 3. 更改测试文件的存储位置。将测试文件存储到除 Program Files 目录之外的其他目录,例如您的用户文档目录或桌面。 总之,要解决这个问题,您需要通过更改权限或更改存储位置来为 MySQL 提供足够的访问权限。 ### 回答3: 这个错误提示意味着MySQL服务器无法在指定的路径下创建名为“mysqld_tmp_file_case_insensitive_test.lower-test”的测试文件。 通常,这个错误是由于权限问题或路径不存在或已被删除而导致的。 首先,您需要确认您正在使用的用户名具有在指定路径下创建文件的权限。如果您没有这些权限,您可以尝试使用具有此权限的用户或管理员帐户来运行MySQL服务器。 其次,您需要检查路径是否存在或已被删除。如果是,您需要将MySQL服务器配置文件中的路径更改为一个有效的路径。如果路径存在,则可能是文件名已被占用或文件系统被损坏。 最后,如果您尝试解决此问题后仍然无法创建测试文件,则可能需要重新安装MySQL服务器或联系MySQL支持团队以获取进一步的帮助。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值