• 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

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

  • 相关阅读:
    scikit-learn机器学习(二)逻辑回归进行二分类(垃圾邮件分类),二分类性能指标,画ROC曲线,计算acc,recall,presicion,f1
    scikit-learn机器学习(一)简单线性回归
    Python描述性统计numpy
    Python统计分析可视化库seaborn(相关性图,变量分布图,箱线图等等)
    Introduction to statistical learning:with Applications in R (书,数据,R代码,链接)
    用python做线性规划
    Python-sympy科学计算与数据处理(求极限及其它功能)
    Python-sympy科学计算与数据处理(方程,微分,微分方程,积分)
    Python-sympy科学计算与数据处理(数学表达式)
    Effective JavaScript Item 55 接受配置对象作为函数參数
  • 原文地址:https://www.cnblogs.com/ajianbeyourself/p/4158874.html
Copyright © 2020-2023  润新知