Por defecto el acceso remoto a un servidor mysql viene deshabilitado. Este ejemplo aplica para CentOS
Editamos la configuracion de mysql:
nano /etc/my.cnf
Buscamos la linea bind-address y se comenta con un #
[mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql #bind-address=0.0.0.0
Desde la maquina local se ingresa como usuario root para crear un usuario nuevo con acceso remoto
mysql -h localhost -u root -p
Se crea el usuario:
GRANT ALL PRIVILEGES ON *.* TO 'usuarionuevo'@'localhost' IDENTIFIED BY 'contraseña' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'usuarionuevo'@'%' IDENTIFIED BY 'contraseña' WITH GRANT OPTION;
Se reinicia el servicio:
/etc/init.d/mysql restart
Se añade la regla que permite el acceso a través del puerto 3306
iptables -I INPUT -p tcp --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/service iptables save
Y listo, se realiza las pruebas:
mysql -u usuarionuevo -h 192.168.10.50 -p password
Opcional: para descartar que el bloqueo lo esté realizando el firewall se puede deshabilitar para realizar pruebas:
service iptables stop