quand j'essaie de voir les bases de données dans mysql, j'obtiens cette erreur:
ERROR 1018 (HY000): Can't read dir of '.' (errno: 13)
Et cela empêche mon application d'afficher ...
Mon débogueur Django dit:
(2002, "Can't connect to local MySQL server through socket '/var/lib/mysql/my_database' (13)")
Voici mon fichier de paramètres:
DATABASES = {
'default': {
'ENGINE': 'Django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'Oracle'.
'NAME': 'my_database', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '****', # Not used with sqlite3.
'Host': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
Que peut causer le problème?
Merci d'avance
Vous devez définir la propriété et les autorisations pour le répertoire:
chown -R mysql:mysql /var/lib/mysql/ #your mysql user may have different name
chmod -R 755 /var/lib/mysql/
Remarque: -R
rend les commandes récursives. Vous pouvez les omettre s’il n’ya pas de sous-répertoires dans /var/lib/mysql/
.
Pour nous, utilisateurs d’OS X, cela devrait fonctionner:
Sudo chown -R mysql:mysql /usr/local/mysql/
Sudo chmod -R 755 /usr/local/mysql/
Edit: En fonction de la façon dont vous avez installé MySQL, votre kilométrage varie. J'ai installé à l'aide du programme d'installation de mysql community server dmg sur mysql.com
Si cela ne fonctionne pas, essayez d'exécuter which mysql
pour voir où se trouve votre installation mysql, puis remplacez /usr/local/mysql/
dans la commande ci-dessus par tout ce qui se trouve avant le répertoire 'bin'.
Par exemple, sur mon système, which mysql
génère le résultat suivant: /usr/local/mysql/bin/mysql
donc mon chemin est /usr/local/mysql/
chown -R mysql:mysql /var/lib/mysql/
chmod -R 755 /var/lib/mysql/
Je peux confirmer que ces deux instructions chmod ont fonctionné pour moi (Webmin n'a pas vu les bases de données, ni n'a montré de tables), mais je ne sais pas pourquoi je devais le faire après l'installation d'environ deux douzaines de serveurs (Centos) avec MySQL dans ce dernières années.
Sur CentOS/RedHat, vous devriez faire la même chose sur un chemin différent:
chown -R mysql:mysql /data/mysql/
chmod -R 755 /data/mysql/
osx High Sierra utilise la commande suivante pour résoudre le problème:
chown -R mysql:mysql /usr/local/mysql