through solucion socket sock mac fichero existe error directorio mysql ruby-on-rails-3 macos

solucion - Ruby on Rails 3 No se puede conectar al servidor MySQL local a través del socket ''/tmp/mysql.sock'' en OSX



error 2002 mysql solucion (13)

Tengo un entorno Rails3 estándar, 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

Error que recibo al ejecutar rake db:migrate para crear una base de datos es:

Can''t connect to local MySQL server through socket ''/tmp/mysql.sock'' (2)

config / database.yml tiene

development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx

Seguro que es algo simple que me estoy perdiendo.


"/tmp/mysql.sock" se creará automáticamente cuando inicie el servidor MySQL. Así que recuerda hacer eso antes de iniciar el servidor de rieles.


¡Lo encontré!

Cambiar el host: localhost en config / database.yml al host: 127.0.0.1 para hacer que los rieles se conecten a través de TCP / IP en lugar del socket local.

development: adapter: mysql2 host: 127.0.0.1 username: root password: xxxx database: xxxx


Con mi instalación de MAMP en OSX, el socket de MySQL se encuentra en /Applications/MAMP/tmp/mysql/mysql.sock . Utilicé locate mysql.sock para encontrar mi ubicación de socket MySQL.

Entonces mi config/database.yml ve así:

development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /Applications/MAMP/tmp/mysql/mysql.sock


Descubrí que el problema es que solo tengo un entorno de producción. No tengo un entorno de desarrollo o prueba.

Al agregar ''RAILS_ENV = producción'' para dar el comando

bundle exec rake redmine:plugins:migrate RAILS_ENV=production

funcionó


En mi máquina, el servicio de mysqld se detuvo, por eso me estaba dando el mismo problema.

1: - Ir a la terminal y escribir

sudo service mysqld restart

Esto reiniciará el servicio mysqld y creará un nuevo archivo sock en la ubicación requerida.


Es posible que su servidor mysql no se esté ejecutando. A continuación se explica cómo iniciar el servidor. Este es un extracto del archivo README que viene con la descarga de mysql.

Después de la instalación, puede iniciar MySQL ejecutando los siguientes comandos en una ventana de terminal. Debe tener privilegios de administrador para realizar esta tarea.

Si ha instalado el elemento de inicio, use este comando:

shell> sudo /Library/StartupItems/MySQLCOM/MySQLCOM start (ENTER YOUR PASSWORD, IF NECESSARY) (PRESS CONTROL-D OR ENTER "EXIT" TO EXIT THE SHELL)

Si no usa el elemento de inicio, ingrese la siguiente secuencia de comando:

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)


Estas son opciones para solucionar este problema:

Opción 1: cambia tu host a 127.0.0.1

staging: adapter: mysql2 host: 127.0.0.1 username: root password: xxxx database: xxxx socket: your-location-socket

Opción 2: Parece que tienes 2 conexiones en tu servidor MySql. Para encontrar su ubicación de archivo de socket haga esto:

mysqladmin variables | grep socket

para mí da:

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!

o

mysql --help

Recibo este error porque instalé XAMPP en mi OS X Versión 10.9.5 para la aplicación PHP. Elija una de las ubicaciones de socket predeterminadas aquí.

Elijo aplicaciones de rieles predeterminadas:

socket: /tmp/mysql.sock

Para mis aplicaciones PHP, instalo XAMPP así que configuro mi socket aquí:

socket: /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

OTHERS Ubicación del socket en OS X

Para MAMPP:

socket: /Applications/MAMP/tmp/mysql/mysql.sock

Para el instalador de paquetes de MySQL:

socket: /tmp/mysql.sock

Para MySQL incluido con Mac OS X Server:

socket: /var/mysql/mysql.sock

Para Ubuntu:

socket: /var/run/mysqld/mysql.sock

Opción 3: si todas esas configuraciones no funcionan, puede eliminar su ubicación de socket:

staging: # socket: /var/run/mysqld/mysql.sock

Espero que esto te ayude.


He tenido el mismo problema, pero ninguna de las respuestas dio paso a paso lo que necesitaba hacer. Este error ocurre porque su archivo de socket no se ha creado aún. Todo lo que tienes que hacer es:

  1. Comience su servidor mysql, entonces su /tem/mysql.sock es creado, para hacer eso ejecuta: mysql.server start
  2. Una vez hecho esto, vaya a su config/database.yml y agregue el socket: /tmp/mysql.sock
  3. Ejecutar rake:dbmigrate una vez más y todo debe entrenar bien

La ubicación predeterminada para el socket MySQL en Mac OS X es /var/mysql/mysql.sock .


Primero, para encontrar su archivo de socket:

mysqladmin variables | grep socket

Para mí, esto da:

| socket | /tmp/mysql.sock |

Luego, agregue una línea a su config/database.yml :

development: adapter: mysql2 host: localhost username: root password: xxxx database: xxxx socket: /tmp/mysql.sock


Si está ejecutando MYSQL a través de XAMPP:

  1. Abra el archivo de configuración de XAMPP mysql (en OSX):

    /Aplicaciones/XAMPP/etc/my.cnf

  2. Copie la ruta del socket

    socket = /Applications/XAMPP/xamppfiles/var/mysql/mysql.sock

  3. Archivo de configuración de la base de datos del proyecto Open Rails: myproject / config / database.yml

  4. Agregue la configuración del socket a la configuración de la base de datos de desarrollo:

->

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

  1. Reiniciar servidor de carriles

Disfruta :)


Si estás en Mac OSX,

La ubicación predeterminada para el socket MySQL Unix es diferente en Mac OS X y Mac OS X Server, dependiendo del tipo de instalación que elija

Ubicaciones de socket Unix de MySQL en Mac OS X por tipo de instalación

  • Instalador de paquete de MySQL ------------------ / tmp / mysql.sock
  • Tarball de MySQL ------------------------------- / tmp / mysql.sock
  • MySQL incluido con Mac OS X Server ------- / var / mysql / mysql.sock

Así que simplemente cambie su database.yml en socket: /tmp/mysql.sock para que apunte al lugar correcto según el sistema operativo y el tipo de instalación que esté utilizando


Usted tiene un problema con esto: No se puede conectar al servidor MySQL local a través del socket ''/var/run/mysqld/mysqld.sock''

Respuesta: $ sudo service mysql start