MariaDB格式化查看代码

MariaDB formatting view code

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

两个实例都是 MariaDB 10.0.17。 使用来自 Windows.

的 Heidi 9.1 进行管理

编辑1。 半解决。 LOAD_FILE for view.frm return null,文件权限的原因。 chmod od 这个文件是660 file own mysql, group mysql.当我手动输入 666 chmod 时,一切正常。 Deamon 是 运行 的 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(读取所有标志)?(暂时用于开发时间)

终于解决了。 HeidiSQL 尝试通过 LOAD_FILE 函数从 .frm 文件加载视图查询,这需要带有 read for all 标志的文件。默认创建模式 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/

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

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

[服务]

环境="UMASK=0664"

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

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

这对我帮助很大!谢谢!

[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 保存并再次读取不变(comments/linebreaks/etc)。