J'ai un environnement standard Rails3, 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
L'erreur que j'obtiens lors de l'exécution rake db:migrate
pour créer une 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
bien sûr, c'est quelque chose de simple qui me manque.
mysql
ruby-on-rails-3
macos
Jamie Buchanan
la source
la source
Réponses:
Tout d'abord, pour trouver votre fichier socket:
mysqladmin variables | grep socket
Pour moi, cela donne:
| socket | /tmp/mysql.sock |
Ensuite, ajoutez une ligne à votre
config/database.yml
:development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /tmp/mysql.sock
la source
mysqladmin: command not found
Command not found
indique que vous n'avez pas installé mysql.PATH
) - vous devez être explicite, par exemple./program_name ...
. Cela signifie que le programme réellement exécuté a tendance à être indépendant de l'endroit où vous essayez de l'exécuter.Trouvé!
Remplacez
host: localhost
config / database.yml parhost: 127.0.0.1
pour que les rails se connectent via TCP / IP au lieu du socket local.development: adapter: mysql2 host: 127.0.0.1 username: root password: xxxx database: xxxx
la source
Votre serveur mysql n'est peut-être pas en cours d'exécution. Ci-dessous explique comment démarrer le serveur. Ceci est un extrait du fichier README fourni avec le téléchargement mysql.
Après l'installation, vous pouvez démarrer MySQL en exécutant les commandes suivantes dans une fenêtre de terminal. Vous devez disposer des privilèges d'administrateur pour effectuer cette tâche.
Si vous avez installé l'élément de démarrage, utilisez cette commande:
shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start (ENTER YOUR PASSWORD, IF NECESSARY) (PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
Si vous n'utilisez pas l'élément de démarrage, entrez la séquence de commandes suivante:
shell> cd /usr/local/mysql shell> sudo ./bin/mysqld_safe (ENTER YOUR PASSWORD, IF NECESSARY) (PRESS CONTROL-Z) shell> bg (PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)
la source
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.server start`Voici des options pour résoudre ce problème:
Option 1: changez votre hôte en 127.0.0.1
staging: adapter: mysql2 host: 127.0.0.1 username: root password: xxxx database: xxxx socket: your-location-socket
Option 2: Il semble que vous ayez 2 connexions dans votre serveur MySql. Pour trouver l'emplacement de votre fichier socket, procédez comme suit:
mysqladmin variables | grep socket
pour moi donne:
mysqladmin: connect to server at 'localhost' failed error: 'Can't connect to local MySQL server through socket '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' (2)' Check that mysqld is running and that the socket: '/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock' exists!
ou
mysql --help
J'obtiens cette erreur car j'ai installé XAMPP dans ma version OS X 10.9.5 pour l'application PHP. Choisissez ici l'un des emplacements de socket par défaut.
Je choisis pour les applications de rails par défaut:
socket: /tmp/mysql.sock
Pour mes applications PHP, j'installe XAMPP donc je configure ma socket ici:
socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
OTHERS Emplacement du socket sous OS X
Pour MAMPP:
socket: /Applications/MAMP/tmp/mysql/mysql.sock
Pour l'installateur de package de MySQL:
socket: /tmp/mysql.sock
Pour MySQL fourni avec Mac OS X Server:
socket: /var/mysql/mysql.sock
Pour Ubuntu:
socket: /var/run/mysqld/mysql.sock
Option 3: Si tous ces paramètres ne fonctionnent pas, vous pouvez supprimer l'emplacement de votre socket:
staging: # socket: /var/run/mysqld/mysql.sock
J'espère que cela vous aidera.
la source
socket: /var/run/mysqld/mysql.sock
fonctionné pour moi"/tmp/mysql.sock" sera créé automatiquement lorsque vous démarrez le serveur MySQL. N'oubliez donc pas de le faire avant de démarrer le serveur rails.
la source
Avec mon installation de MAMP sur OSX, le socket MySQL se trouve à
/Applications/MAMP/tmp/mysql/mysql.sock
. J'avais l'habitudelocate mysql.sock
de trouver l'emplacement de mon socket MySQL.Donc mon
config/database.yml
ressemble à:development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /Applications/MAMP/tmp/mysql/mysql.sock
la source
Si vous utilisez Mac OSX,
Emplacements des sockets MySQL Unix sur Mac OS X par type d'installation
Il suffit donc de changer votre database.yml dans
socket: /tmp/mysql.sock
le point au bon endroit en fonction du type système d' exploitation et l' installation que vous utilisezla source
L'emplacement par défaut du socket MySQL sur Mac OS X est
/var/mysql/mysql.sock
.la source
J'ai eu le même problème, mais aucune des réponses n'a donné une étape par étape de ce que je devais faire. Cette erreur se produit car votre fichier socket n'a pas encore été créé. Tout ce que tu dois faire est:
/tmp/mysql.sock
est créé, pour ce faire, exécutez:mysql server start
config/database.yml
fichier et ajoutez / modifiez l'socket: /tmp/mysql.sock
entréerake:dbmigrate
à nouveau et tout devrait bien fonctionnerla source
rake db:migrate
*J'ai trouvé que le problème est que je n'ai qu'un environnement de production. Je n'ai pas d'environnement de développement ou de test.
En ajoutant 'RAILS_ENV = production' pour donner la commande
bundle exec rake redmine:plugins:migrate RAILS_ENV=production
ça a marché
la source
Si vous exécutez MYSQL via XAMPP:
Ouvrez le fichier de configuration mysql de XAMPP (sous OSX):
/Applications/XAMPP/etc/my.cnf
Copiez le chemin du socket:
socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Fichier de configuration de la base de données du projet Open rails: myproject / config / database.yml
Ajoutez la configuration du socket à la configuration de la base de données de développement:
->
development: adapter: mysql2 encoding: utf8 reconnect: false database: difiuri_falcioni pool: 5 username: root password: host: localhost socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
Prendre plaisir :)
la source
Vous rencontrez un problème comme celui-ci: impossible de vous connecter au serveur MySQL local via le socket '/var/run/mysqld/mysqld.sock'
Ans: $ sudo service mysql start
la source
Sur ma machine, le service mysqld s'est arrêté, c'est pourquoi il me posait le même problème.
1: - Allez au terminal et tapez
sudo service mysqld restart
Cela redémarrera le service mysqld et créera un nouveau fichier chaussette à l'emplacement requis.
la source
Si vous exécutez MYSQL via XAMPP ou LAMPP sur Ubuntu ou autre Linux, essayez:
socket: /opt/lampp/var/mysql/mysql.sock
la source