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)。
当我在 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)。