Closed edux closed 3 years ago
Es un ticket del 2018... vos decis que tiene sentido mantenerlo "actualizado" al 2020? porque la verdad que no poder conectarse a un mysql puede ser por mil motivos (contraseña, puertos cerrados, etc, etc).
Sí, agregaría respuestas de posibles opciones de troubleshooting
On Mon, Jun 1, 2020, 11:38 AM Andrea notifications@github.com wrote:
Es un ticket del 2018... vos decis que tiene sentido mantenerlo "actualizado" al 2020? porque la verdad que no poder conectarse a un mysql puede ser por mil motivos (contraseña, puertos cerrados, etc, etc).
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/22#issuecomment-636897117, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABSKGHECQCKQ7NAFLR7VNBDRUO4OBANCNFSM4NKIYYMQ .
Estoy lejos de mis días de (W|L)AMP, pero tratando de refrescar mi memoria buceando un rato en internet en busca de tips y esas cosas, para mí más o menos el troubleshooting va por estas líneas:
localhost
u otro lugar¿Faltará algo que chequear?
1 y 2 varían bastante dependiendo si se está usando WampServer, XAMPP, MySQL instalado en el SO (Windows|Linux), containers, etc.
Para 4 me parece que conviene mostrar donde mirar para ver donde está el log.
¿Les parece ir haciéndolo de manera iterativa incremental en el post?
Dejo algunas referencias:
Saludos!
Agregalo en /help!
El sáb., 7 nov. 2020 a las 14:26, modri (notifications@github.com) escribió:
Estoy lejos de mis días de (W|L)AMP, pero tratando de refrescar mi memoria buceando un rato en internet en busca de tips y esas cosas, para mí más o menos el troubleshooting va por estas líneas:
- Mirar si el proceso está corriendo
- Chequear en que puerto está corriendo
- Mirar si se tiene privilegios para conectarse desde donde se hace conexión, sea localhost u otro lugar
- Mirar los logs en busca de errores
¿Faltará algo que chequear?
1 y 2 varían bastante dependiendo si se está usando WampServer, XAMPP, MySQL instalado en el SO (Windows|Linux), containers, etc.
Para 4 me parece que conviene mostrar donde mirar para ver donde está el log.
¿Les parece ir haciéndolo de manera iterativa incremental en el post?
Dejo algunas referencias:
- Tips de troubleshooting de WampServer http://forum.wampserver.com/read.php?2,134915 Muy completo
- Ver si MySQL está corriendo en Linux https://www.cyberciti.biz/faq/how-to-find-out-if-mysql-is-running-on-linux/
- Respuesta de SO de como chequear las variables de MySQL para saber donde están los logs https://stackoverflow.com/a/37685324
Saludos!
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/22#issuecomment-723471819, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGRIY3MAKVHSZ4TOKID2NDSOV7KRANCNFSM4NKIYYMQ .
Perfectirijillo.
Calculo que lo hago tranquilo el finde que no estoy a las corridas.
Prometo no colgar.
Agregalo en /help
@edux presumí que te referías a agregarlo en el hilo, pero ahora me doy cuenta ahora que el mismo está cerrado. :facepalm:
¿Decías de abrir un nuevo hilo y que deje la respuesta ahí? ¿Hacer eso no mata un poco la idea de usar ese hilo porque está bien posicionado en Google?
Mientras me aclaran que prefieren hacer, dejo* acá la respuesta formateada, así si me abducen aliens :alien:, me cae un problema productivo :fire::fire::fire: o me agarro alto empacho de churros de El Topo, etc., pueden hacer tranquilamente C&P.
*Claramente desde que escribí esto y traté de armar la respuesta pasó más tiempo del que esperaba y me quedé a medio camino. Estoy acostumbrado a la receta APB por el laburo... :shrug:
Probablemente haya horrores de redacción, así que cualquier comentario por ese lado es más que bienvenido.
Los links que aparacen son las imágenes que no subí (mi idea original era redactarlo local y hacer C&P acá, pero bueno, pasaron cosas y prefiero que vean que es que no colgué).
Seguiré editando y agregando acá hasta terminar y después hago lo que sugieran que haga sobre /help
.
En general para analizar el problema de conexión a la base de datos MySQL lo que uno podría hacer es lo siguiente:
NOTA
Si la conexión a la BDD se hace de manera remota (es decir el programa y la BDD están en distintos equipos), también habría que verificar que se pueda llegar desde donde se ejecuta el programa hasta donde está ejecutando el proceso de la DB y que el puerto es visible.
Por tratarse de
WampServer
estoy asumiendo que programa y BDD están en el mismo equipo.
Veamos los pasos descriptos arriba en detalle para el caso puntual WampServer
:
Service administration 'wampmysqld64'
en WampServer de 64 bits o Service administration 'wampmysqld'
para la versión de 32 bits.Service administration 'wampmysqld64'
(o Service administration 'wampmysqld'
) no aparece el tilde verde posicionarse arriba de Service administration 'wampmysqld64'
(o Service administration 'wampmysqld'
), se abrirá un nuevo menú, sobre este nuevo menú hacer click en Start/Resume Service
.En la cuadro de búsqueda de Windows, buscar la aplicación Run
o Ejecutar
(dependiendo si el idioma de Windows es inglés o español) y ejecutarla.
En el cuandro de diálogo de Run
(o Ejecutar
) ingresar service.msc
y presionar OK
.
Services
(o Servicios
) buscar el servicio con nombre wampmysqld64
para WampServer
de 64 bits (o wampmysqld
para la versión 32 bits).
Status
(o Estado
) es Running
(o En ejecución
).Status
(o Estado
) hacer click sobre la línea del servicio, luego hacer click derecho y en el menú que aparece hacer click sobre Start
(o Iniciar
).
Mirar en el programa se quiere conectar a la BDD los valores de conexión:
host
: donde corre este caso debería figurar localhost
port
: es el puerto que utiliza la BDD para recibir peticiones. Por defecto MySQL utiliza 3306
user
: el usuario con el cual se quiere conectar a la DBBpassword
: contraseña del usuario (user
) 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.
Ir a Tools
En el menú aparecerá el ítem Test port 3306
y si se cambió el puerto desde WampServer
también aparecerá el ítem Test MySQL port used: PUERTO
donde PUERTO
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 chequeo
Hacer click Test MySQL port used: PUERTO
si sólo aparece dicho ítem. Esta acción abrirá una ventana que mostrará el resultado del chequeo
Si el chequeo en ambos casos falla y el proceso está ejecutándose hacer lo indicando en esta sección en Desde línea de comando
CMD
como Administrator
(Línea de comando
como Administrador
)netstat -a -b
mysqld
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
).
NOTA
El usuario
root
en WampServer por defecto no tiene password. Por lo que es posible conectarse sin necesidad del parámetro correspondiente.
MySQL
desde WampServerMysQL console
MySQL
desde línea de comandosCMD
como Administrator
(Línea de comando
como Administrador
)Ir a la ruta donde está el ejecutable mysql.exe
. Usualmente UBICACION_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 ejecutar mysql -uroot
.
Una vez conectados a la instancia ejecutar los siguientes comandos SQL:
USE MYSQL;
SELECT
user,
host,
account_locked,
password_expired
FROM mysql.user;
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:
GRANT USAGE ON NOMBRE_DB_O_WILDCARD.OBJECTO_DB_O_WILDCARD TO 'NOMBRE_USUARIO@NOMBRE_DE_HOST_O_IP_O_WILDCARD';
Donde:
NOMBRE_DB_O_WILDCARD
: indica a la base de datos de la instancia de MySQL
a la que se permite conectar. Se puede usar *
que permite indicar que son todas las bases de datos de la instancia de MySQL
.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 ejemplo localhost
. El comodin en este caso es %
y se puede utilizar para indicar cualquier host o IP, excepto locahost.NOTA
El comando no altera los permisos del usuario (ej:
SELECT
oINSERT
) sólo permite el uso (o conexión).
Ejemplos:
-- Dar acceso a la base de datos de nombre SYSARMY_DB al usuario ramon desde cualquier host excepto localhost
GRANT USAGE ON SYSARMY_DB.* TO 'ramon@%';
-- Dar acceso a la base de datos de nombre SYSARMY_DB al usuario ramon desde localhost
GRANT USAGE ON SYSARMY_DB.* TO 'ramon@localhost';
-- Dar acceso a todas las base de datos usuario ramon desde cualquier host excepto localhost
GRANT USAGE ON *.* TO 'ramon@%';
-- Dar acceso a todas las base de datos usuario ramon desde localhost
GRANT USAGE ON *.* TO 'ramon@localhost';
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
o MyISAM
).
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.
MysQL Log
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 de MySQL
. Para ello:
CMD
como Administrator
(Línea de comando
como Administrador
)Ir a la ruta donde está el ejecutable mysql.exe
. Usualmente UBICACION_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 a grep
, permitiendo filtrar ciertas expresiones.
log_error
. A su lado estará la ubicación del archivo de log.ooops se cerro en la migracion, yo despues paso esto ahi, gracias!
El dom., 15 nov. 2020 a las 23:21, modri (notifications@github.com) escribió:
Agregalo en /help
@edux https://github.com/edux presumí que te referías a agregarlo en el hilo, pero ahora me doy cuenta ahora que el mismo está cerrado. 🤦
¿Decías de abrir un nuevo hilo y que deje la respuesta ahí? ¿Hacer eso no mata un poco la idea de usar ese hilo porque está bien posicionado en Google?
Mientras me aclaran que prefieren hacer, dejo* acá la respuesta formateada, así si me abducen aliens 👽, me cae un problema productivo 🔥 🔥🔥 o me agarro alto empacho de churros de El Topo, etc., pueden hacer tranquilamente C&P.
*Claramente desde que escribí esto y traté de armar la respuesta pasó más tiempo del que esperaba y me quedé a medio camino. Estoy acostumbrado a la receta APB por el laburo... 🤷
Probablemente haya horrores de redacción, así que cualquier comentario por ese lado es más que bienvenido.
Los links que aparacen son las imágenes que no subí (mi idea original era redactarlo local y hacer C&P acá, pero bueno, pasaron cosas y prefiero que vean que es que no colgué).
Seguiré editando y agregando acá hasta terminar y después hago lo que sugieran que haga sobre /help.
En general para analizar el problema de conexión a la base de datos MySQL lo que uno podría hacer es lo siguiente:
- Verificar si el proceso de la base de datos (BDD) está ejecutándose
- Verificar la conexión a la BDD
- Verificar los parámetros de conexión del programa con el que se quiere conectar a la DB
- Verificar que el puerto está corriendo el proceso de la DB coincide con el puerto de la conexión
- Verificar si el usuario tiene privilegios para conectarse
- Ver los logs de la DB en busca de errores
NOTA
Si la conexión a la BDD se hace de manera remota (es decir el programa y la BDD están en distintos equipos), también habría que verificar que se pueda llegar desde donde se ejecuta el programa hasta donde está ejecutando el proceso de la DB y que el puerto es visible.
Por tratarse de WampServer estoy asumiendo que programa y BDD están en el mismo equipo.
Veamos los pasos descriptos arriba en detalle para el caso puntual WampServer:
Verificar si el proceso de la base de datos (BDD) está ejecutándose Desde WampServer
- Hacer click izquierdo sobre el ícono de WampServer
- Ir a MySQL
Ver el estado del proceso 1.
El proceso está ejecutándose si se vé un tilde verde a la izquierda de Service administration 'wampmysqld64' en WampServer de 64 bits o Service administration 'wampmysqld' para la versión de 32 bits. [image: Proceso BDD ejecutándose visto desde WampServer] http://./WampServer/troubleshooting-000-wampserver-process.jpg 2.
Si en Service administration 'wampmysqld64' (o Service administration 'wampmysqld') no aparece el tilde verde posicionarse arriba de Service administration 'wampmysqld64' (o Service administration 'wampmysqld'), se abrirá un nuevo menú, sobre este nuevo menú hacer click en Start/Resume Service.
Desde servicios de Windows
- En la cuadro de búsqueda de Windows, buscar la aplicación Run o Ejecutar (dependiendo si el idioma de Windows es inglés o español) y ejecutarla. [image: Ver estado del proceso BDD desde WampServer] http://./WampServer/troubleshooting-001-run.PNG
- En el cuandro de diálogo de Run (o Ejecutar) ingresar service.msc y presionar OK. [image: Ver estado del proceso BDD desde WampServer] http://./WampServer/troubleshooting-002-services-msc.PNG
- En la ventana de Services (o Servicios) buscar el servicio con nombre wampmysqld64 para WampServer de 64 bits (o wampmysqld para la versión 32 bits).
- El servicio está corriendo si el Status (o Estado) es Running (o En ejecución).
- Si no aparece valor en la columna Status (o Estado) hacer click sobre la línea del servicio, luego hacer click derecho y en el menú que aparece hacer click sobre Start (o Iniciar).
- 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 figurar localhost
- port: es el puerto que utiliza la BDD para recibir peticiones. Por defecto MySQL utiliza 3306
- user: el usuario con el cual se quiere conectar a la DBB
- password: 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 este 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
- Hacer click derecho sobre el ícono de WampServer
- Ir a Tools
- En el menú aparecerá el ítem Test port 3306 y si se cambió el puerto desde WampServer también aparecerá el ítem Test MySQL port used: PUERTO donde PUERTO 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 chequeo
- Hacer click Test MySQL port used: PUERTO si sólo aparece dicho ítem. Esta acción abrirá una ventana que mostrará el resultado del chequeo
- Si el chequeo en ambos casos falla y el proceso está ejecutándose hacer lo indicando en esta sección en Desde línea de comando
Desde línea de comando
- Abrir CMD como Administrator (Línea de comando como Administrador)
- Ejecutar netstat -a -b
- Buscar en la salida los puertos asociado al proceso mysqld
2.3. Verificar si el usuario tiene privilegios para conectarse 3. Ver los logs de la DB en busca de errores
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/sysarmy/disneyland/issues/22#issuecomment-727693837, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGRIY5N2XR4HQK4Y5NTQZ3SQCEA3ANCNFSM4NKIYYMQ .
Ahi actualize el hilo https://help.sysarmy.com/discussion/4033/problemas-al-tratar-de-conectarme-a-mysql pero me parece que faltan unas images que referenciaste, esas estan en alguna de las otras paginas como para que las suba o linkee en el reply?
Ahi actualize el hilo https://help.sysarmy.com/discussion/4033/problemas-al-tratar-de-conectarme-a-mysql pero me parece que faltan unas images que referenciaste, esas estan en alguna de las otras paginas como para que las suba o linkee en el reply?
Faltan cosas. Edito mi respuesta arriba, así tirás el C&P con todo.
Espero terminar hoy.
Hermosa manera de pasar el feriado (va sin ironía, ni sarcasmo, bueno tal vez un poco JAJAJA! al menos no tengo que revisar PRs del Team ¯_(ツ)_/¯).
@edux ya estaría editado el comentario más arriba con todos los puntos y las imágenes. Cualquier cosa me avisan y lo revisamos. Buena semana! Gracias por los saludos el viernes.
Ahi subi todo lo ultimo, gracias!
Esta respuesta esta bien posicionada en google, mejorarl el contenido para que tenga mas -vvvv https://help.sysarmy.com/discussion/4033/problemas-al-tratar-de-conectarme-a-mysql