Ruby on Rails 3 can't connect to local MySQL server through socket '/tmp/mysql.chaussette " sur OSX
J'ai une Rails3 environnement, RVM 1.2.9, Rails 3.0.5, Ruby 1.9.2p180, MySQL2 Gem 0.2.7, mysql-5.5.10-osx10.6-x86_64
D'erreur que j'obtiens lorsque l'exécution de rake db:migrate
pour créer la base de données est:
Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
config/database.yml a
development:
adapter: mysql2
host: localhost
username: root
password: xxxx
database: xxxx
sûr que c'est quelque chose de simple, je suis absent.
- Est le fichier de socket présent? C'est peut-être présent quelque part d'autre (/var/lib/mysql/mysql.chaussette)?
- Nope, ni exister. Je vais essayer d'en créer un.
- le cœur de ces questions, ou au niveau de l'OS..
Vous devez vous connecter pour publier un commentaire.
D'abord, pour trouver votre fichier de socket:
Pour moi, cela donne:
Ensuite, ajouter une ligne à votre
config/database.yml
:mysqladmin: command not found
Command not found
indique que vous n'avez pas de mysql.PATH
) - vous devez être explicite, par exemple./program_name ...
. Cela signifie que le programme exécuté tend à être indépendant de l'endroit où vous essayez d'exécuter à partir d'.Trouvé!
Changement
host: localhost
dans le fichier config/database.yml pourhost: 127.0.0.1
pour faire des rails se connecter via TCP/IP au lieu de socket local.Ubuntu
serveur, mais dansCentOS
j'ai dû ajouter.Votre serveur mysql ne peut pas être en cours d'exécution. Ci-dessous explique comment démarrer le serveur. Ceci est un extrait de le fichier README fourni avec le mysql télécharger.
Après l'installation, vous pouvez démarrer MySQL en exécutant la commande suivante
les commandes dans une fenêtre de terminal. Vous devez disposer de privilèges d'administrateur
pour effectuer cette tâche.
Si vous avez installé l'Élément de Démarrage, utilisez cette commande:
Si vous n'utilisez pas l'Élément de Démarrage, entrez la commande suivante de la séquence:
unset TMPDIR
etmysql_install_db --verbose --user=
whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp....then I had to start the server
mysql.serveur de démarrer`"/tmp/mysql.chaussette" sera créé automatiquement lorsque vous démarrez le serveur MySQL. Donc n'oubliez pas de le faire avant de démarrer le serveur rails.
Ce sont les options pour résoudre ce problème:
Option 1: changement vous accueil dans 127.0.0.1
Option 2: Il semble que vous ayez 2 connexions à votre serveur MySql.
Pour trouver votre fichier de socket emplacement ce faire:
pour moi donne:
ou
J'obtiens cette erreur parce que j'ai installé XAMPP dans ma Version OS X 10.9.5 pour l'application PHP. Choisissez l'un de la valeur par défaut emplacement du connecteur ici.
- Je choisir pour rails par défaut des applications:
Pour mes applis PHP, j'ai installer XAMPP j'ai donc mis mon socket:
AUTRES Emplacement du connecteur dans OS X
Pour MAMPP:
Pour Installer le Package de MySQL:
Pour MySQL fourni avec Mac OS X Server:
Pour Ubuntu:
Option 3: Si tous ces paramètre ne fonctionne pas, vous pouvez supprimer votre emplacement du connecteur:
J'espère que cela vous aidera.
Avec mon installation de MAMP sur mac OSX MySQL socket est situé à
/Applications/MAMP/tmp/mysql/mysql.sock
. J'ai utilisélocate mysql.sock
de trouver mon MySQL emplacement du connecteur.Donc mon
config/database.yml
ressemble:Si vous êtes sur Mac OSX,
MySQL Unix Socket Endroits sur Mac OS X par Type d'Installation
Donc il suffit de changer votre base de données.yml dans
socket: /tmp/mysql.sock
pour pointer vers le bon endroit en fonction de l'OS et du type d'installation que vous utilisezL'emplacement par défaut pour le socket MySQL sur Mac OS X est
/var/mysql/mysql.sock
.J'ai eu le même problème, mais aucune des réponses tout à fait donné une, étape par étape, de ce que je devais faire. Cette erreur se produit parce que votre fichier de socket n'a pas encore été créé. Tout ce que vous avez à faire est de:
/tmp/mysql.sock
est créé, pour faire que vous exécutez:mysql server start
config/database.yml
fichier et ajouter/modifier lessocket: /tmp/mysql.sock
entréerake:dbmigrate
une fois de plus et tout devrait séance d'entraînement de finesJ'ai trouvé que le problème est que je n'ai qu'un environnement de production. Je n'ai pas de développement ou de l'environnement de test.
En ajoutant 'RAILS_ENV=production" pour donner de la commande
il a travaillé
Si vous utilisez MYSQL via XAMPP:
Ouvrir XAMPP fichier de configuration de mysql (sur OSX):
/Applications/XAMPP/etc/my.cnf
Copiez le socket chemin:
socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.chaussette
Ouvrir rails de projet de base de données fichier de configuration:
myproject/config/database.yml
Ajouter le support de config pour le développement de la base de données de config:
-->
Profiter 🙂
Vous avez un problème avec comme ceci: can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.chaussette'
Ans: $ sudo service mysql start
Sur ma machine mysqld le service s'est arrêté c'est pourquoi il me faisait le même problème.
1:- Aller au terminal et tapez
Cela va redémarrer le service mysqld et de créer une nouvelle chaussette de fichier sur l'emplacement requis.
Si vous utilisez MYSQL via XAMPP ou LAMPP sur Ubuntu ou Linux, essayez:
socket: /opt/lampp/var/mysql/mysql.sock