Je veux qu'un script SQL soit exécuté à chaque démarrage de mysql mais je ne peux pas le faire fonctionner dans Ubuntu 11.10.
J'ai ajouté une option " init-file " au fichier de configuration mysql:
> sudo emacs -nw /etc/mysql/my.cnf
...
[mysqld]
init-file=/etc/mysql/mysqlinit.sql
...
Mais lorsque je redémarre mysql, il échoue avec une erreur " Fichier non trouvé ":
> 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
Mais le fichier existe certainement et est lisible:
> ls -l /etc/mysql/mysqlinit.sql
-rwxr-xr-x 1 mysql mysql 30 2011-11-09 05:06 /etc/mysql/mysqlinit.sql
Des idées pour résoudre ceci? Est-ce une bizarrerie Ubuntu ou ai-je fait quelque chose de stupide?
Info:
J'utilise Ubuntu 11.10 et 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
donne "/etc/mysql/mysqlinit.sql: texte ASCII, sans terminaison de ligne"/tmp
dossier pour voir ce qui se passe. Utilisez-vous AppArmor?/tmp
mais pas de chance. Oui, je pense qu'Ubuntu utilise AppArmor.Réponses:
Merci @quanta, le problème était bien celui de l'apparmeur.
Pour résoudre le problème:
Editez le fichier apparmor mysql:
Incluez le dossier dans lequel réside votre fichier init avec l'extension * .sql:
Faites ensuite recharger les profils par AppArmor.
Rechargez ensuite mysql:
Maintenant, le fichier init est exécuté. Yay!
la source