Acceso de línea de comandos al servidor MySQL remoto

0

Administro un sitio web en un host remoto y compartido. Mi servidor web ofrece MySQL, y puedo acceder a este desde mi computadora Mac OS X mediante un programa GUI, Secuela pro . Eso funciona muy bien.

Pero quiero escribir algunas consultas, y Sequel Pro no tiene secuencias de comandos. ¿Qué tengo que hacer?

He leído acerca de hacer un túnel a mysql a través de SSH. Tengo acceso de shell al servidor, con una clave SSH en mi Mac, por lo que

ssh [email protected] -p 7978

me entra. ¿Debería hacer un túnel en el puerto MySQL 3306? ¿Me gusta esto?

ssh [email protected] -L 3306: 127.0.0.1: 3306

(Se "agota" después de un minuto.)

¿Necesito instalar mysql en mi Mac?

Jerry Krinock
fuente

Respuestas:

0

En el servidor MySQL, necesita modificar el archivo my.cnf , cuya ubicación depende del sistema operativo: en Debian, está en / etc / mysql, por ejemplo. Edítalo, encuentra la línea.

 [mysqld]

Y añádele el siguiente texto:

 [mysqld]
 user            = mysql
 pid-file        = /var/run/mysqld/mysqld.pid
 socket          = /var/run/mysqld/mysqld.sock
 port            = 3306
 basedir         = /usr
 datadir         = /var/lib/mysql
 tmpdir          = /tmp
 language        = /usr/share/mysql/English
 bind-address    = The_IP_of_YOUR_MySQL_Server
 # skip-networking

Aquí, lo importante es que comentas la línea. saltar redes , y que insertas, en la linea. dirección de enlace , la IP del servidor. Guarde, reinicie mysql (de nuevo, esto depende del sistema operativo), acceda a MySQL con lo habitual

  mysql -u root -p mysql

y permitir el acceso desde su propia IP remota a la base de datos existente:

  mysql> update db set Host='Your_own_remote_IP' where Db='webdb';
  mysql> update user set Host='Your_own_remote_IP' where user='webadmin';

Ahora vuelva a su sistema remoto y pruebe la nueva funcionalidad:

 mysql -u webadmin –h The_IP_of_theMySQL_Server –p

Para que esto funcione, por supuesto, necesita un cliente MySQL en su Mac. Ahora puede crear sus propias consultas de MySQL, por ejemplo, en un script de bash de la siguiente manera:

  #!/bin/bash

  result=`mysql -h The_IP_of_theMySQL_Server --user=webadmin --password=Your_Password --skip-column-names -e "select id from mydb.mytable where myattribute = 3"`

EDITAR:

Esto es necesario si desea conectarse de forma remota directamente al servidor MySQL. Si solo desea escribir sus consultas localmente ( es decir , en el servidor), entonces MySQL el cliente va a hacer. Puedes encontrar una introducción. aquí .

MariusMatutiae
fuente
Gracias mario Y guau Creo que es posible que deba encontrar otra manera porque, para empezar, este es un servidor compartido y no tengo acceso a / etc. ¿Esto realmente tiene que ser asi que duro, sin embargo? El programa GUI que mencioné, Sequel Pro, funciona bien y no recuerdo que haya tenido que modificar el host. Todo lo que necesitaba era información de cuenta y credenciales. Solo quiero una versión de línea de comandos de Sequel Pro. (Lo sé, es de código abierto, así que yo mismo podría escribir y escribir uno, pero esperaba hacerlo mañana).
Jerry Krinock
@JerryKrinock Por favor, vea mi edición.
MariusMatutiae
0

Usando ssh puede ejecutar comandos de forma remota. Así que si quieres escribir algunas consultas, esta es una forma de hacerlo. Tal vez no sea lo que estás buscando, sino una opción para conocer

Digamos que el host B es su servidor sql. host A es el cliente desde el que desea ejecutar sus consultas

En el host B, ponga sus consultas en archivos, por ejemplo, crear un archivo "test.sql". En mi caso solo pongo "mostrar bases de datos"

Entonces desde el host A puedes hacer

ssh [opciones] "[comando para ejecutar]"

Configure el inicio de sesión sin contraseña con ssh (mediante la autenticación ssh-rsa). Utilizando "ssh-keygen" y "ssh-copy-id". Puedes probar esto haciendo

ssh [opciones] "ls" y vea si devuelve los resultados del host B "ls"

Desde alli puedes hacer

ssh [opciones] "mysql [opciones] & lt; test.sql"

¿Tiene sentido?

También deberías poner una contraseña en tu comando mysql del que no seas un fan, no muy seguro. No he experimentado con otro inicio de sesión "sin contraseña" en mysql, tal vez haya otra forma de hacer esa parte.

ben
fuente