sql >> Base de Datos >  >> RDS >> Mysql

Conexión a bases de datos MySQL


Introducción

Una de las primeras cosas en las que deberá pensar cuando trabaje con una base de datos MySQL es cómo conectarse e interactuar con la instancia de la base de datos. Esto requiere coordinación entre el cliente de la base de datos, el componente que utiliza para interactuar con la base de datos, y el servidor de la base de datos, la instancia real de MySQL que almacena, organiza y brinda acceso a sus datos.

Debido a esto, debe comprender cómo conectarse como cliente al proporcionar la información requerida para autenticarse. En esta guía, cubriremos cómo conectarse a una base de datos MySQL usando el mysql nativo cliente de línea de comandos:una de las formas más comunes y útiles de interactuar con una instancia de base de datos.

En una guía complementaria, puede averiguar cómo configurar la autenticación de MySQL para satisfacer las necesidades de su proyecto. Considere leer ambas guías para obtener una imagen más completa de cómo funciona la autenticación en MySQL.



Información básica sobre mysql cliente

El mysql client es el cliente de línea de comandos predeterminado y el shell SQL para MySQL. Puede usarlo de forma interactiva para generar una sesión de shell con su servidor o puede alimentarlo con archivos SQL para que se ejecute sin la interacción del usuario. Es especialmente útil al implementar opciones de configuración y configurar su entorno. La exploración interactiva y las consultas ad-hoc también son un punto fuerte al desarrollar los patrones de acceso que usarán sus programas.

La forma de conectarse y autenticarse con un servidor MySQL depende de la configuración de su servidor. En las siguientes secciones, repasaremos algunas de las opciones básicas de conexión. En aras de la claridad, diferenciaremos entre conexiones locales y remotas:

  • conexión local :una conexión donde el cliente y la instancia de MySQL se encuentran en el mismo servidor
  • conexión remota :donde el cliente se conecta a una instancia de MySQL accesible por red que se ejecuta en una computadora diferente

Comencemos por conectarnos a una base de datos desde la misma computadora.



Conectando a una base de datos local con mysql

Sin ningún argumento, mysql El comando intenta conectarse a un archivo de socket de Unix para acceder a una base de datos local. Por lo general, la ubicación predeterminada del archivo de socket está determinada por un archivo de configuración o por un valor predeterminado compilado. De forma predeterminada, el nombre de usuario de su sistema operativo se utiliza para intentar conectarse a la base de datos.

Entonces, si su usuario actual es un usuario válido de MySQL en su base de datos local, puede intentar conectarse escribiendo:

mysql

Si la cuenta existe y no requiere una contraseña o si la autenticación de socket MySQL está configurada para la cuenta, iniciará sesión automáticamente. Si el nombre de usuario no existe en MySQL o si se requiere una contraseña o autenticación adicional, el comando fallará.

Para controlar la forma en que mysql intenta iniciar sesión en la base de datos, pase información adicional con su comando usando las opciones de la línea de comandos:

  • --user=<username> o -u <username> :especifica el usuario de MySQL con el que autenticarse.
  • --password o -p :le dice a MySQL que solicite una contraseña para el usuario de MySQL.
  • --host=127.0.0.1 o -h 127.0.0.1 :le dice a mysql para conectarse a la instancia local de MySQL utilizando la dirección de bucle invertido TCP local en lugar de un socket Unix. Es importante usar esto si su servidor MySQL no está configurado para usar sockets Unix.

Nota: MySQL interpreta 127.0.0.1 diferente a como lo hace localhost . Especificando 127.0.0.1 indica que desea utilizar una conexión TCP, mientras que localhost hará que MySQL intente usar un socket Unix para conectarse a la base de datos local.

Entonces, si necesita iniciar sesión como usuario de MySQL eva con una contraseña, pero aún usando el socket de Unix para conectarse, puede escribir:

mysql --user=eva --password

El mysql el cliente le pedirá una contraseña para la cuenta.

Si desea intentar iniciar sesión con el mismo nombre de usuario pero a través de una conexión TCP a la base de datos local, escriba:

mysql --user=eva --password --host=127.0.0.1

La configuración de autenticación predeterminada, así como el nombre de usuario y la contraseña administrativos iniciales, pueden diferir según cómo se instaló MySQL. Muchos métodos, sin embargo, configuran MySQL para usar un socket Unix e incluyen un root predeterminado. usuario como cuenta administrativa.

En estos casos, puede iniciar sesión en la base de datos como root usuario escribiendo:

mysql --user=root --password

Se le solicitará la contraseña administrativa que se seleccionó o generó durante la instalación para continuar.

Todos estos métodos le permiten conectarse a una base de datos MySQL local.



Conexión a una base de datos remota

Si desea conectarse a una base de datos MySQL remota, deberá proporcionar la ubicación de red del host remoto y posiblemente agregar información adicional.

Los métodos de autenticación disponibles varían según la configuración de la instancia de MySQL. Sin embargo, lo más común es que necesite proporcionar los siguientes parámetros para autenticarse:

Opción Descripción
--host= o -h El nombre de host de la red o la dirección IP del servidor MySQL.
--port= o -P El puerto de red en el que se ejecuta el servidor MySQL. Si el servidor está utilizando el puerto 3306, el puerto predeterminado de MySQL, este parámetro puede omitirse.
--user= o -u El nombre de usuario de la base de datos con el que desea conectarse. Si no se especifica, se utilizará el nombre de usuario de su sistema operativo.
--password o -p Indique que desea proporcionar una contraseña para la cuenta especificada. El mysql el cliente le pedirá la contraseña una vez que presione Enter .
Base de datos MySQL El nombre de la base de datos MySQL a la que desea acceder. Si no se especifica, mysql se conectará al servidor sin conectarse a una base de datos específica.

El formato básico para conectarse a una base de datos remota generalmente se ve así:

mysql --host=<hostname> --port=<port> --user=<user> --password <database>

Después de presionar Enter , el mysql El cliente le pedirá la contraseña. Si se autentica correctamente, se iniciará una nueva sesión interactiva de MySQL.

Como ejemplo, podemos imaginar querer conectarnos a una base de datos con los siguientes requisitos:

  • nombre de host:myhost
  • puerto:1234
  • base de datos:applicationdb
  • nombre de usuario:myapplicationuser
  • contraseña:mypass

Llamando a mysql con las siguientes opciones le permitiría autenticarse:

mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb

Al presionar enter, se le solicitará una contraseña donde puede autenticarse con mypass .



Ajustando la configuración de autenticación de un servidor MySQL

Si desea modificar las reglas que dictan cómo los usuarios pueden autenticarse en sus instancias de MySQL, puede hacerlo modificando la configuración de su servidor. Puede averiguar cómo modificar la configuración de autenticación de MySQL en este artículo.



Conclusión

En esta guía, cubrimos la autenticación de MySQL desde el lado del cliente. Demostramos cómo usar mysql cliente de línea de comandos para conectarse a instancias de bases de datos locales y remotas.

Saber cómo conectarse a varias instancias de MySQL es uno de los primeros pasos que debe comprender cuando comience a trabajar con el sistema de base de datos. Puede ejecutar una instancia local de MySQL para el desarrollo que no necesita ninguna autenticación especial, pero sus bases de datos en preparación y producción casi seguramente requerirán autenticación. Ser capaz de autenticarse en cualquier caso le permitirá trabajar bien en diferentes entornos.