Acabo de instalar un nuevo servidor ubuntu con mysql (percona 5.5), pero se niega a aceptar conexiones de hosts remotos
Esto es lo que sucede si intento conectarme a este servidor de forma remota:
mysql -h10.0.0.2 -uroot -pmypassowrd
ERROR 2003 (HY000): Can't connect to MySQL server on '10.0.0.2' (111)
telnet 10.0.0.2 3306
Trying 10.0.0.2...
telnet: Unable to connect to remote host: Connection refused
Cuando verifiqué si mysql escucha conexiones remotas, vi esto:
sudo netstat -ntlup | grep mysql
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 127018/mysqld
Como puede ver, dice 127.0.0.1:3306
que significa "Acepto solo conexiones locales".
Verifiqué mis variables skip_networking
y bind-address
- todo está apagado:
mysql> show variables like '%skip_networking%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| skip_networking | OFF |
+-----------------+-------+
1 row in set (0.00 sec)
mysql> show variables like '%bind%';
Empty set (0.00 sec)
Tengo otro servidor con absolutamente la misma configuración y funciona muy bien:
sudo netstat -ntlup | grep mysql
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 2431/mysqld
¿Cuál puede ser la razón de esto? ¿Cómo hago que mysql responda a conexiones remotas?
bind_address
solo está disponible desde la versión 5.6 ( bugs.mysql.com/bug.php?id=44355 ), por lo que devolverá un conjunto vacío en v5.5 incluso si está configurado.Respuestas:
Intenta agregar
bind-address = 0.0.0.0
a tu[mysqld]
sección de tumy.cnf
y reiniciar mysqld .fuente
/etc/mysql/mysql.conf.d/mysqld.cnf
Podría deberse a la tabla de usuario de la base de datos mysql (use mysql; show tables;). Si el enlace a 0.0.0.0 no funciona para usted, intente darle a su usuario el host '%' en lugar de 'localhost' en esa tabla.
Por ejemplo, intente crear un usuario como:
e intente conectarse con ese usuario.
fuente
Cuando todo lo demás falla y está seguro de que el servidor ESTÁ escuchando en el puerto predeterminado y está intentando conectarse desesperadamente con el cliente mysql desde otro host, intente especificar el puerto en la URL del comando mysql.
Por extraño que sea, tuve que usar la siguiente sintaxis:
He encontrado esto (¿error?) Totalmente por accidente (después de perder mis pelos :)).
Mi configuración: debian jessie, mysql fresco 5.7.18, usuarios / db creados, dirección de enlace comentada, mysqld reiniciado
fuente
Acabo de tener este problema y mi problema parecía estar relacionado con el firewall. Por cierto, gracias @Temnovit por los comandos de solución de problemas de Mysql.
Usé netstat para decir que el servidor se estaba ejecutando y en el puerto correcto. También podría decir que mi servidor no aceptaba conexiones en ese puerto con un simple comando telnet.
Después de otra respuesta útil sobre los comandos del firewall de Fedora, podría abrir los puertos correctos.
Mi comando telnet fue exitoso.
Si aún tiene problemas, es probable que sea un problema de permisos de usuario.
fuente
He
mariadb
instalado La soulution era modificar elbind-address
ubicado en/etc/mysql/mariadb.conf.d/50-server.cnf
fuente
La solución descrita en el siguiente enlace debería resolver su problema http://www.debianhelp.co.uk/remotemysql.htm
fuente