Conexión a MySQL en Bash (sin MySQL instalado)

11

Estoy tratando de conectarme a una base de datos remota de MySQL en Bash. En el servidor que aloja la base de datos, puedo escribir:

mysql -u _username_ -p

para conectar.

Me gustaría poder escribir:

mysql -h _host_ -u _username_ -p

para conectarse desde otro servidor. No tengo MySQL instalado en el cliente, por lo que no se encuentra el comando. ¿Hay algo que pueda instalar (se prefiere apt-get) además de todo el servidor MySQL para poder usar los comandos mysql en bash?

usuario722307
fuente
1
apt-get install mysql-client Pensé que era solo para el cliente GUI.
user722307
Puede responder su propia pregunta, y después de un tiempo también puede aceptarla.
enzotib

Respuestas:

21

Para instalar el cliente MySQL de línea de comandos, debe hacer:

sudo apt-get install mysql-client

y luego puedes hacer

mysql -h HOST -P PORT_NUMBER -u USERNAME -p

Sin embargo, es posible que deba modificar la configuración del servidor MySQL. Por defecto en ubuntu, el servidor MySQL solo aceptará conexiones desde el servidor local. Se llama a la configuración bind-addressy se establece /etc/mysql/my.cnf. Por defecto lo es 127.0.0.1: debe cambiarlo a la dirección IP del servidor. Si el servidor tiene varias direcciones IP, puede elegir una sola dirección IP (por ejemplo, para la red interna) o hacer que MySQL escuche todas las direcciones IP haciendo el valor0.0.0.0

También deberá asegurarse de que el usuario de MySQL pueda acceder a la base de datos. Siguiendo las instrucciones en Internet, es posible que haya creado un usuario 'myname'@'localhost'; ese usuario no podrá conectarse de forma remota. Para crear un nuevo usuario que pueda conectarse desde la dirección IP de su cliente, debe hacer algo como:

GRANT ALL PRIVILEGES ON database_name TO 'username'@'192.168.0.51' IDENTIFIED BY 'password';

Lea un poco más sobre la especificación de dirección que utiliza MySQL .

Finalmente, no olvide asegurarse de que el firewall del servidor permitirá el acceso al puerto MySQL; el valor predeterminado es 3306.

Hamish Downer
fuente