¡Te damos la bienvenida al nuevo sysarmy --help! Para recuperar tu usuario pedí un password reset.
Problemas al tratar de conectarme a MySQL
Buenas noches, mi nombre es Kevin y soy nuevo en el sitio. Con respecto a mi problema, hace desde el
jueves que vengo renegando con MySQL. Estoy desarrollando un proyecto en PHP para una materia de la carrera y mi idea era ponerme a programar gran parte del fin de semana ya que no me queda mucho tiempo. Pero hasta ahora mucho no puedo hacer ya que no me logro conectar al servidor, que es local. Como servidor utilizo WAMPSERVER, y según parece no hay error alguno, pero MySQL Workbench me tira lo siguiente:
Y Laravel esto otro:
El jueves ya había notado que no funcionaba del todo bien, ya que cuando me puse a probar las ABM que ya tenía listas no andaban, había hecho dos altas y varias modificaciones, pero sólo pasó un alta y ninguna modificación. Al seguir intentando me apareció el mensaje de Laravel que puse más arriba, recargué varias veces el sitio y luego todo anduvo con normalidad, pero desde ayer ya no funciona para nada y no sé que más hacer. Por un momento pensé que era yo que había programado algo mal, pero MySQL Workbench tampoco se puede conectar.
Ya googlee, reinicié y apagué todo pero no hay forma, les agredeceré mucho si me dan una mano ya que necesito avanzar lo más rápido posible.
jueves que vengo renegando con MySQL. Estoy desarrollando un proyecto en PHP para una materia de la carrera y mi idea era ponerme a programar gran parte del fin de semana ya que no me queda mucho tiempo. Pero hasta ahora mucho no puedo hacer ya que no me logro conectar al servidor, que es local. Como servidor utilizo WAMPSERVER, y según parece no hay error alguno, pero MySQL Workbench me tira lo siguiente:
"Can't connect to MySQL server on 'localhost' (10061)"
. Y Laravel esto otro:
"SQLSTATE[HY000] [2002] No se puede establecer una conexión ya que el equipo de destino denegó expresamente dicha conexión. (SQL: select * from `libros` where `destacado` = 1)".
El jueves ya había notado que no funcionaba del todo bien, ya que cuando me puse a probar las ABM que ya tenía listas no andaban, había hecho dos altas y varias modificaciones, pero sólo pasó un alta y ninguna modificación. Al seguir intentando me apareció el mensaje de Laravel que puse más arriba, recargué varias veces el sitio y luego todo anduvo con normalidad, pero desde ayer ya no funciona para nada y no sé que más hacer. Por un momento pensé que era yo que había programado algo mal, pero MySQL Workbench tampoco se puede conectar.
Ya googlee, reinicié y apagué todo pero no hay forma, les agredeceré mucho si me dan una mano ya que necesito avanzar lo más rápido posible.
Accede o Regístrate para comentar.
Respuestas
En general para analizar el problema de conexión a la base de datos MySQL lo que uno podría hacer es lo siguiente:
>
Veamos los pasos descriptos arriba en detalle para el caso puntual
WampServer
:1. Verificar si el proceso de la base de datos (BDD) está ejecutándose
Desde WampServer
Service administration 'wampmysqld64'
en WampServer de 64 bits oService administration 'wampmysqld'
para la versión de 32 bits.Service administration 'wampmysqld64'
(oService administration 'wampmysqld'
) no aparece el tilde verde posicionarse arriba deService administration 'wampmysqld64'
(oService administration 'wampmysqld'
), se abrirá un nuevo menú, sobre este nuevo menú hacer click enStart/Resume Service
.Desde servicios de Windows
En la cuadro de búsqueda de Windows, buscar la aplicación
Run
oEjecutar
(dependiendo si el idioma de Windows es inglés o español) y ejecutarla.En el cuandro de diálogo de
Run
(oEjecutar
) ingresarservice.msc
y presionarOK
.Services
(oServicios
) buscar el servicio con nombrewampmysqld64
paraWampServer
de 64 bits (owampmysqld
para la versión 32 bits).Status
(oEstado
) esRunning
(oEn ejecución
).Status
(oEstado
) hacer click sobre la línea del servicio, luego hacer click derecho y en el menú que aparece hacer click sobreStart
(oIniciar
).2. Verificar la conexión a la BDD
2.1. Verificar los parámetros de conexión del programa con el que se quiere conectar a la DB.
Mirar en el programa se quiere conectar a la BDD los valores de conexión:
host
: donde corre este caso debería figurarlocalhost
port
: es el puerto que utiliza la BDD para recibir peticiones. Por defecto MySQL utiliza3306
user
: el usuario con el cual se quiere conectar a la DBBpassword
: contraseña del usuario (user
)2.2. Verificar que el puerto está corriendo el proceso de la DB coincide con el puerto de la conexión
Si el valor del puerto obtenido con esta verificación coincide con el puerto que utiliza el programa continuar con los chequeos.
En caso contrario cambiar el valor del puerto utilizado por el programa al que utiliza MySQL y volver a ejecutar el programa para ver si se solucionó el problema.
Verificación del puerto utilizado desde WampServer
Ir a Tools
En el menú aparecerá el ítem
Test port 3306
y si se cambió el puerto desdeWampServer
también aparecerá el ítemTest MySQL port used: PUERTO
dondePUERTO
es el valor del puerto utilizado por MySQL.Hacer click en
Test port 3306
si sólo aparece dicho ítem. Esta acción abrirá una ventana que mostrará el resultado del chequeoHacer click
Test MySQL port used: PUERTO
si sólo aparece dicho ítem. Esta acción abrirá una ventana que mostrará el resultado del chequeoDesde línea de comando
Verificación del puerto utilizado desde línea de comando
CMD
comoAdministrator
(Línea de comando
comoAdministrador
)netstat -a -b
mysqld
2.3. Verificar si el usuario tiene privilegios para conectarse
El usuario utilizado podría no tener permisos para conectarse a la instancia de
MySQL
. Por ejemplo, que tenga permisos para hacerlo desde la ubicación desde la cual se está realizando la conexión (ej:localhost
).Si el usuario tiene permisos para conectarse desde dicha ubicación continuar. Caso contrario cambiar los privilegios y volver a probar conectarse.
Los permisos para conectarse se pueden verificar mediante una consulta SQL a las tablas de administración de la instancia de
MySQL
. Para ello primero hay que conectarse a la instancia utilizando un usuario con privilegios de administración (ej:root
).Conectarse a la instancia de
MySQL
desde WampServerMysQL console
Conectarse a la instancia de
MySQL
desde línea de comandosCMD
comoAdministrator
(Línea de comando
comoAdministrador
)Ir a la ruta donde está el ejecutable
mysql.exe
. UsualmenteUBICACION_INSTALACIO_WAMPSERVER\bin\mysql\mysqlNUMERO_VERSION\bin
.Por ejemplo:
C:\wamp64\bin\mysql\mysql5.7.31\bin
Ejecutar
mysql.exe
para conectarse con el usuario de administración ingresando luego su password mediante:mysql -uNOMBRE_USUARIO -p
En el caso del usuario
root
, si este no tuviera defina la password (ver nota arriba) basta con ejecutarmysql -uroot
.Una vez conectados a la instancia ejecutar los siguientes comandos SQL:
Ahí mostrará desde donde se pueden conectar (
host
) los distintos usuarios (user
) , además indica si la cuenta está bloqueada (account_locked
) o su password expiró (password_expired
).Para dar permisos para utilizar algún objecto de determinada base de datos dentro de la instancia de
MySQL
basta con ejecutar el siguiente comando:Donde:
NOMBRE_DB_O_WILDCARD
: indica a la base de datos de la instancia deMySQL
a la que se permite conectar. Se puede usar*
que permite indicar que son todas las bases de datos de la instancia deMySQL
.OBJECTO_DB_O_WILDCARD
: indica a que objeto dentro de la DB se permite el uso, como una tabla, un vista o un procedimiento almacenado. Se puede usar*
para indicar que son todos los objetos de la base de datos.NOMBRE_USUARIO
: Indica el usuario al que se le da el permisoNOMBRE_DE_HOST_O_IP_O_WILDCARD
: Indica desde donde se permite conectar al usuario, por ejemplolocalhost
. El comodin en este caso es%
y se puede utilizar para indicar cualquier host o IP, excepto locahost.Ejemplos:
3. Ver los logs de la DB en busca de errores
Si lo anterior falla, puede que el problema sea otro. Como por ejemplo problemas en los archivos de almacenamiento para el tipo motor de almacenamiento elegido (ej:
InnoDB
oMyISAM
).Para ello lo mejor es mirar el log en busca de errores. Para los errores utilizar el código de error para buscar soluciones en la Web o dejar la consulta en /help de SysArmy.
Abrir logs desde WampServer
MysQL Log
Buscar ubicación de los logs la instancia de
MySQL
desde la ínea de comandosEn el caso de que no pudiera abrirse el log desde WampServer, una opción es abrirlos directamente con el programa que más les guste (ej:
vim
).Para saber donde está siendo guardado basta con buscar el valor de la variable
log_error
de la instancia deMySQL
. Para ello:CMD
comoAdministrator
(Línea de comando
comoAdministrador
)Ir a la ruta donde está el ejecutable
mysql.exe
. UsualmenteUBICACION_INSTALACIO_WAMPSERVER\bin\mysql\mysqlNUMERO_VERSION\bin
.Por ejemplo:
C:\wamp64\bin\mysql\mysql5.7.31\bin
Ejecutar:
mysql -uroot -se "SHOW VARIABLES" | findstr /i log | findstr ////
Si el usuario
root
tiene password hay que pasar el parámetro-p
, es decir el comando sería:mysql -uroot -p -se "SHOW VARIABLES" | findstr /i log | findstr ////
El comando
findstr
es similar agrep
, permitiendo filtrar ciertas expresiones.log_error
. A su lado estará la ubicación del archivo de log.Respondido por modri en #22
Estás seguro que el servicio de MySQL está corriendo ?
Probá esto desde el prompt (inicio > ejecutar > cmd -- no recuerdo si tenés que poner botón derecho y ejecutar como administrador):
Y fijate si ves algo en el 3306
"... ya que el equipo de destino denegó expresamente dicha conexión..."
Por casualidad cambiaste los permisos de mysql?
Hola!!
Estaba verificando a ver si el estaba ejecutando el servicio
wampmysqld64
pero no estaba en ejecución y al hacerle click derecho e iniciarlo, me aparece una ventana que dice "El servicio wampmysqld64 en Equipo local se inicio y después de detuvo" y no me lo ejecuta, no se si sepan como arreglar este problemagracias!!