MySQL: Difference between revisions

From hugovil.com
Jump to navigationJump to search
No edit summary
No edit summary
Line 17: Line 17:
</pre>
</pre>


Si ça ne fonctionne que sous root, c'est que l'usager web n'a pas les droits suffisants pour accéder au socket de MySQL. Il faut alors permettre l'accès au socket mysql par le groupe, et ajouter l'usager web au groupe mysql:
Si ça ne fonctionne que sous root, c'est que l'usager web (www dans mon cas) n'a pas les droits suffisants pour accéder au socket de MySQL. Il faut alors permettre l'accès au socket mysql par le groupe mysql:


<pre>
<pre>
ls -al /var/run/mysql
> chmod g+rwx /var/run/mysql
> ls -al /var/run/mysql
total 512
total 512
drwxrwx--- 2 mysql mysql  80 2008-09-10 21:48 .
drwxrwx--- 2 mysql mysql  80 2008-09-10 21:48 .
drwxr-xr-x 8 root  root  888 2008-09-09 00:49 ..
drwxr-xr-x 8 root  root  888 2008-09-09 00:49 ..
srwxrwxrwx 1 mysql mysql  0 2008-09-10 21:48 mysql.sock
srwxrwxrwx 1 mysql mysql  0 2008-09-10 21:48 mysql.sock
</pre>
et ajouter l'usager web au groupe mysql:
<pre>
mysql:x:102:www
</pre>
</pre>

Revision as of 00:29, 12 September 2008

Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (13)

Le code d'erreur 13 signifie "Permission denied".

Si ce message d'erreur survient dans un script PHP éxécuté sous Apache, essayer d'éxécuter le script suivant en tant qu'usager root et en tant qu'usager du serveur web:

<?php
$connection = mysql_connect('localhost', 'user', 'password', 'database');

if (mysql_errno()) {
  printf("Connection failed: %s\n", mysql_error());
} else {
  printf("Connection succeeded\n");
}
?>

Si ça ne fonctionne que sous root, c'est que l'usager web (www dans mon cas) n'a pas les droits suffisants pour accéder au socket de MySQL. Il faut alors permettre l'accès au socket mysql par le groupe mysql:

> chmod g+rwx /var/run/mysql
> ls -al /var/run/mysql
total 512
drwxrwx--- 2 mysql mysql  80 2008-09-10 21:48 .
drwxr-xr-x 8 root  root  888 2008-09-09 00:49 ..
srwxrwxrwx 1 mysql mysql   0 2008-09-10 21:48 mysql.sock

et ajouter l'usager web au groupe mysql:

mysql:x:102:www