【问题标题】:MariaDB formatting view codeMariaDB 格式化视图代码
【发布时间】:2015-07-15 16:15:31
【问题描述】:

当我在 debian(6) 上保存 mariadb 的视图时,我丢失了 cmets 和代码格式。 mariadb的这个功能是什么?关了怎么关?在 windows 实例上,所有 cmets 和格式都被存储。

两个实例都是 MariaDB 10.0.17。 使用来自 Windows 的 Heidi 9.1 进行管理。

编辑 1。 半解决。 view.frm 的 LOAD_FILE 返回 null,文件权限的原因。 chmod od 这个文件是660文件,自己的mysql,组mysql。当我手动输入即 666 chmod 时,一切正常。守护进程由 mysql 用户运行。由 mariadb root 用户管理,具有授予文件权限。

编辑 2。 LOAD_FILE 仅适用于已为所有用户读取标志的文件,文件的所有者无关紧要......而且我已经在 ubuntu 14.04 lts 上进行了测试,并且发生了同样的问题。看起来像 mariadb debian/ubuntu 错误... 我使用 auditd 来检查对文件的访问。当文件没有所有的读取标志时,没有发生任何事件...... 有什么想法吗?

编辑 3。 https://mariadb.com/kb/en/mariadb/load_file/ 必须为所有人读取文件...

所以问题是:如何为 .frm(或所有...)文件设置默认 chmod(读取所有标志)?(暂时,用于开发时间)

【问题讨论】:

  • 解释导致丢失的步骤。
  • 半解决。 view.frm 的 LOAD_FILE 返回 null,文件权限的原因。 chmod od 这个文件是660文件,自己的mysql,组mysql。当我手动输入即 666 chmod 时,一切正常。守护进程由 mysql 用户运行。由 mariadb root 用户管理,具有授予文件权限。

标签: mysql linux view formatting mariadb


【解决方案1】:

终于解决了。 HeidiSQL 尝试通过LOAD_FILE 函数从.frm 文件加载视图查询,该函数需要读取所有标志的文件。默认创建模式 db 文件为 0660(目录为 0700)。我们可以通过包含来更改它以启动脚本(即/etc/init.d/mysql),即export UMASK=064(这是OR - 不是AND)更多:https://mariadb.com/kb/en/mariadb/specifying-permissions-for-schema-data-directories-and-tables/

【讨论】:

    【解决方案2】:

    好的,我的环境有另一个答案(Mariadb 10.1 + Ubuntu 16.04 LTS)

    创建一个新文件; /etc/systemd/system/mariadb.service.d/MY_SPECIAL.conf 包含以下几行;

    [服务]

    环境="UMASK=0664"

    这似乎将 frm 的权限设置为 -rw-rw-r-- 同时允许 LOAD_FILE 读取视图/存储的过程/其他源。

    我希望这对其他人有帮助!

    【讨论】:

      【解决方案3】:

      这对我帮助很大!谢谢!

      [https://mariadb.com/kb/en/systemd/#configuring-the-umask]

      sudo tee /etc/systemd/system/mariadb.service.d/umask.conf <<EOF
      [Service]
      
      Environment="UMASK=0664"
      EOF
      sudo systemctl daemon-reload
      

      HeidiSQL 保存并再次读取视图并保持不变(使用 cmets/linebreaks/等)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-08-13
        • 2012-03-17
        • 2010-10-07
        • 2011-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-01-19
        相关资源
        最近更新 更多