我想在每当mysql启动时运行一个SQL脚本,但是我无法在Ubuntu 11.10中运行它。
我在mysql配置文件中添加了“ init-file ”选项:
> sudo emacs -nw /etc/mysql/my.cnf
...
[mysqld]
init-file=/etc/mysql/mysqlinit.sql
...
但是,当我重新启动mysql时,它失败并显示“ 找不到文件 ”错误:
> tail /var/log/mysql/error.log
111111 7:41:06 [ERROR] /usr/sbin/mysqld: File '/etc/mysql/mysqlinit.sql' not found (Errcode: 13)
111111 7:41:06 [ERROR] Aborting
但是该文件确实存在并且可读:
> ls -l /etc/mysql/mysqlinit.sql
-rwxr-xr-x 1 mysql mysql 30 2011-11-09 05:06 /etc/mysql/mysqlinit.sql
任何想法如何解决这个问题?这是Ubuntu的怪异现象还是我做了些愚蠢的事情?
信息:
我正在运行Ubuntu 11.10和MySQL 5.1。
> mysqld --version
mysqld Ver 5.1.58-1ubuntu1 for debian-linux-gnu on x86_64 ((Ubuntu))
file /etc/mysql/mysqlinit.sql
给出“ /etc/mysql/mysqlinit.sql:ASCII文本,没有行终止符”
要缩小问题的范围,只需尝试将其移至
—
量子
/tmp
文件夹以查看会发生什么。您正在运行AppArmor吗?
我尝试使用init文件,
—
汤姆
/tmp
但是没有运气。是的,我认为Ubuntu使用AppArmor。
如果是这样,请尝试停止AppArmor并查看错误是否消失。
—
量子
file /etc/mysql/mysqlinit.sql
什么?