ฉันต้องการให้สคริปต์ SQL ทำงานเมื่อใดก็ตามที่ mysql เริ่มทำงาน แต่ฉันไม่สามารถทำงานได้ใน Ubuntu 11.10
ฉันได้เพิ่มตัวเลือก " init-file " ลงในไฟล์กำหนดค่า mysql:
> 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 โดยไม่มีตัวคั่นบรรทัด"
หากต้องการ จำกัด ปัญหาให้แคบลงเพียงลองย้ายไปยัง
—
quanta
/tmp
โฟลเดอร์เพื่อดูว่าเกิดอะไรขึ้น คุณใช้ AppArmor อยู่หรือไม่
ฉันลองใช้ไฟล์ init ใน
—
Tom
/tmp
แต่ก็ไม่มีโชค ใช่ฉันคิดว่า Ubuntu ใช้ AppArmor
ถ้าเป็นเช่นนั้นให้ลองหยุด AppArmor และดูว่าข้อผิดพลาดหายไปหรือไม่
—
quanta
file /etc/mysql/mysqlinit.sql
?