Saya ingin menjalankan skrip SQL setiap kali mysql mulai tetapi saya tidak bisa membuatnya bekerja di Ubuntu 11.10.
Saya menambahkan opsi " init-file " ke file konfigurasi mysql:
> sudo emacs -nw /etc/mysql/my.cnf
...
[mysqld]
init-file=/etc/mysql/mysqlinit.sql
...
Tetapi ketika saya me-restart mysql, gagal dengan kesalahan " File tidak ditemukan ":
> 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
Tetapi file itu pasti ada dan dapat dibaca:
> ls -l /etc/mysql/mysqlinit.sql
-rwxr-xr-x 1 mysql mysql 30 2011-11-09 05:06 /etc/mysql/mysqlinit.sql
Ada ide bagaimana menyelesaikan ini? Apakah ini keanehan Ubuntu atau apakah saya melakukan sesuatu yang bodoh?
Info:
Saya menjalankan Ubuntu 11.10 dan MySQL 5.1.
> mysqld --version
mysqld Ver 5.1.58-1ubuntu1 for debian-linux-gnu on x86_64 ((Ubuntu))
file /etc/mysql/mysqlinit.sql
?file /etc/mysql/mysqlinit.sql
memberikan "/etc/mysql/mysqlinit.sql: teks ASCII, tanpa terminator baris"/tmp
folder untuk melihat apa yang terjadi. Apakah Anda menjalankan AppArmor?/tmp
tetapi tidak berhasil. Ya, saya pikir Ubuntu menggunakan AppArmor.Jawaban:
Terima kasih @quanta, masalahnya memang apparmor.
Untuk memperbaiki masalah:
Edit file appsor mysql:
Sertakan folder tempat init-file Anda hidup dengan ekstensi * .sql:
Dan kemudian buat AppArmor memuat ulang profil.
Kemudian muat ulang mysql:
Sekarang file init dijalankan. Yay!
sumber