2012-02-13 57 views
6

Tengo configuración mySQL en una PC en mi red local, ¿cómo me conecto? También tengo mySQL instalado en esta computadora (que quiero usar para conectarme a la base de datos).conectándose al servidor mysql en otra PC en LAN

He intentado lo siguiente, pero no está funcionando

mysql -u user -h 192.168.1.28:3306 -p password 
ERROR 2005 (HY000): Unknown MySQL server host '192.168.1.28:3306' (0) 

EDIT: Gracias por su ayuda. De todos modos, me conecto sin 3306 y tengo otro problema. MACBOOK es el nombre de mi computadora cliente.

mysql -u user -ppassword -h 192.168.1.28 
ERROR 1045 (28000): Access denied for user 'user'@'MACBOOK' (using password: YES) 

Gracias.

+2

Si tiene una nueva pregunta (y los problemas de autenticación son algo diferente de los problemas de conexión), investigue nuevamente y si no encuentra una respuesta (que dudo mucho), haga una nueva pregunta. Además, lea una de las muchas introducciones para principiantes en MySQL, que debería responder a su pregunta de inmediato. –

Respuesta

5

Sigue una lista de comprobación simple:

  1. intentar hacer ping la máquina ping 192.168.1.2
  2. Asegúrese de MySQL se está ejecutando en el puerto especificado 3306 es decir, que no se ha modificado.
  3. Asegúrese de que la otra PC no está bloqueando las conexiones entrantes en ese puerto. Si es así, agregue una excepción de firewall para permitir las conexiones en el puerto 3306 y permitir las conexiones entrantes en general.
  4. Sería bueno si pudiera publicar el error exacto como se muestra cuando intenta hacer esa conexión.
0

No tiene que especificar ': 3306' después de la IP, es el puerto predeterminado para MySQL.

Y si su servidor MySQL se ejecuta con otro puerto distinto de 3306, entonces tiene que agregar '-P [puerto]' en lugar de agregarlo a la dirección IP.

El cliente MySQL no reconocerá la sintaxis "host: puerto", TIENE que usar -P [puerto] en su lugar.

Y, por cierto, si usa '-p contraseña', no funcionará y le pedirá la contraseña nuevamente. Debe insertar la contraseña en -p: -pcontraseña. (Aún así, es un hábito muy malo, porque cualquiera que pueda hacer un PS en su servidor podría ver la contraseña simple ...)

0

en realidad no debe especificar el puerto en el nombre de host. MySQL tiene opción especial para el puerto (si el puerto se diferencia de forma predeterminada)

tipo de

mysql --host=192.168.1.2 --port=3306 
0

Debe utilizar este:

>mysql -u user -h 192.168.1.2 -P 3306 -ppassword 

o esto:

>mysql -u user -h 192.168.1.2 -ppassword 

.. .porque 3306 es un número de puerto predeterminado.

mysql Options

2
mysql -u user -h 192.168.1.2 -p 

Esto debería ser suficiente para la conexión al servidor MySQL. Compruebe el firewall de 192.168.1.2 si la conexión remota al servidor MySQL está habilitada.

Saludos

+0

No funciona para mí. –

5

Puesto que usted tiene mysql en su computadora local, no tiene que molestarse con la dirección IP de la máquina. Sólo tiene que utilizar localhost:

mysql -u user -p 

o

mysql -hlocalhost -u user -p 

Si no puede iniciar sesión con esto, usted debe averiguar qué nombres de usuario (user @ host) existe en el servidor MySQL locallly. Esto es lo que hace:

Paso MySQL 01) Inicio de manera que no hay ninguna contraseña no requieren contraseñas y niega las conexiones TCP/IP

service mysql restart --skip-grant-tables --skip-networking 

tener en cuenta que el estándar SQL para añadir usuarios, conceder y revocar privs se desactivan.

Paso 02) Mostrar usuarios y anfitriones

select concat(''',user,'''@''',host,'''') userhost,password from mysql.user; 

Paso 03) Confirmar su contraseña para asegurarse de que funciona

select user,host from mysql.user where password=password('YourMySQLPassword'); 

Si su contraseña no produce ningún resultado para esta consulta, usted tiene una mala contraseña.

Si su contraseña produce resultados para esta consulta, observe los usuarios y hosts. Si su valor de host es '%', debe poder conectarse desde cualquier lugar. Si su host es 'localhost', debería poder conectarse localmente.

Haga que el usuario tenga 'root' @ 'localhost' definido.

Una vez que haya hecho lo que se necesita, sólo tienes que reiniciar MySQL normalmente

service mysql restart 

Si usted es capaz de conectar con éxito en el MacBook, ejecute esta consulta:

SELECT USER(),CURRENT_USER(); 

USER() informes de cómo se intentaron para autenticarse en MySQL

CURRENT_USER() informa cómo se le permitió autenticarse en MySQL

Háganos saber lo que sucede!

ACTUALIZACIÓN 2012-02-13 20:47 EDT

de sesión en el servidor y repita remoto Paso 1-3

ver si alguno de usuario permite el acceso remoto (es decir, el anfitrión en mysql.user es ' % '). Si no lo hace, agregue 'user' @ '%' a mysql.user.

+2

Tengo mysql en mi servidor local, pero quiero conectarme a mysql en la otra PC. – revolver

7

Eso fue muy útil ¡Pregunta! ya que necesitamos ejecutar la aplicación con DB centralizado en algunas ocasiones. en ese caso deberíamos otorgar los privilegios a esas computadoras en LAN para acceder a una base de datos particular alojada en LAN PC. así que aquí está la solución para eso!

1.ir al servidor MySQL

2.Type siguiente código para permitir el acceso de la otra PC

mysql> grant all privileges on *.* to 'root'@'%' identified by 'root_password'; 
mysql> flush privileges; 

reemplazar ‘%’ a la IP que desea conceder acceso a!

+3

Es bastante peligroso permitir 'root' que el SuperUser se use desde cualquier ip en el universo. Sería mejor crear una nueva cuenta de usuario con acceso solo a la base de datos en cuestión, y con solo el mínimo de privilegios para hacer lo que requiere el acceso remoto. – RiggsFolly

+0

¡Esta respuesta es realmente útil! Y sí, como dijo @RiggsFolly crear una nueva cuenta primero y luego hacerlo. – user55924

+0

Acepto que es peligroso, pero ¿es una locura hacer esto en una máquina de desarrollo en una pequeña oficina en casa? – mlissner

1

Conexión a cualquier base de datos MySQL debería ser así:

$mysql -h hostname -Pportnumber -u username -p (a continuación, ENTER)

A continuación, se le pedirá la contraseña. Nota: El número de puerto debería estar más cerca de -P o mostrará un error. Asegúrate de saber cuál es tu puerto mysql. El valor predeterminado es 3306 y es opcional especificar el puerto en este caso. Si es algo más, debe mencionar el número de puerto con -P o de lo contrario, mostrará un error.

Por ejemplo: $mysql -h 10.20.40.5 -P3306 -u root -p (a continuación, introduzca)

Password:My_Db_Password 

Gubrish sobre el producto que utiliza.

mysql>_ 

Nota: Si usted está tratando de conectar una base de datos en una ubicación diferente para asegurarse de que puede hacer ping a ese servidor/ordenador.

$ping 10.20.40.5 

Debería devolver TTL con el tiempo que haya vuelto PONG. Si dice que el destino es inalcanzable, entonces no puede conectarse a mysql remoto sin importar qué.

En tal caso, póngase en contacto con su administrador de red o compruebe la conexión de su cable a su computadora hasta el final de su equipo de destino. O compruebe si funciona LAN/WAN/MAN o internet/intranet/extranet.

Cuestiones relacionadas