Introdução
Uma das primeiras coisas que você precisa pensar ao trabalhar com um banco de dados MySQL é como se conectar e interagir com a instância do banco de dados. Isso requer coordenação entre o cliente de banco de dados — o componente que você usa para interagir com o banco de dados e o servidor de banco de dados — a instância real do MySQL que armazena, organiza e fornece acesso aos seus dados.
Por isso, você precisa entender como se conectar como cliente fornecendo as informações necessárias para autenticar. Neste guia, abordaremos como se conectar a um banco de dados MySQL usando o
mysql
nativo cliente de linha de comando — uma das formas mais comuns e úteis de interagir com uma instância de banco de dados. Em um guia complementar, você pode descobrir como configurar a autenticação do MySQL para atender às necessidades do seu projeto. Considere ler os dois guias para obter uma visão mais completa de como a autenticação funciona no MySQL.
Informações básicas sobre o mysql
cliente
O
mysql
client é o cliente de linha de comando padrão e o shell SQL para MySQL. Você pode usá-lo interativamente para gerar uma sessão de shell com seu servidor ou pode alimentá-lo com arquivos SQL para executar sem interação do usuário. É especialmente útil ao implementar opções de configuração e configurar seu ambiente. Exploração interativa e consultas ad-hoc também são um ponto forte ao desenvolver os padrões de acesso que seus programas usarão. A maneira de conectar e autenticar com um servidor MySQL depende da configuração do seu servidor. Nas seções a seguir, veremos algumas das opções básicas de conexão. Para maior clareza, vamos diferenciar entre conexões locais e remotas:
- conexão local :uma conexão onde o cliente e a instância MySQL estão localizados no mesmo servidor
- conexão remota :onde o cliente está se conectando a uma instância MySQL acessível pela rede em execução em um computador diferente
Vamos começar conectando-se a um banco de dados do mesmo computador.
Conectando a um banco de dados local com mysql
Sem nenhum argumento, o
mysql
O comando tenta se conectar a um arquivo de soquete Unix para acessar um banco de dados local. Normalmente, o local do arquivo de soquete padrão é determinado por um arquivo de configuração ou por um valor padrão compilado. Por padrão, o nome de usuário do seu sistema operacional é usado para tentar se conectar ao banco de dados. Portanto, se seu usuário atual for um usuário MySQL válido em seu banco de dados local, você pode tentar se conectar digitando:
mysql
Se a conta existir e não exigir uma senha ou se a autenticação de soquete MySQL estiver configurada para a conta, você será conectado automaticamente. Se o nome de usuário não existir no MySQL ou se uma senha ou autenticação adicional for necessária, o comando falhará.
Para controlar a maneira como o
mysql
tenta fazer login no banco de dados, passe informações adicionais com seu comando usando as opções da linha de comando:--user=<username>
ou-u <username>
:especifica o usuário do MySQL com o qual autenticar.--password
ou-p
:diz ao MySQL para solicitar uma senha para o usuário do MySQL.--host=127.0.0.1
ou-h 127.0.0.1
:diz aomysql
para se conectar à instância local do MySQL usando o endereço de loopback TCP local em vez de um soquete Unix. Isso é importante se o seu servidor MySQL não estiver configurado para usar soquetes Unix.
Observação: MySQL interpreta
127.0.0.1
diferente de localhost
. Especificando 127.0.0.1
indica que você deseja usar uma conexão TCP, enquanto localhost
fará com que o MySQL tente usar um soquete Unix para se conectar ao banco de dados local. Então, se você precisar fazer login como usuário MySQL
eva
com uma senha, mas ainda usando o soquete Unix para conectar, você pode digitar:mysql --user=eva --password
O
mysql
cliente solicitará uma senha para a conta. Se você quiser tentar fazer login com o mesmo nome de usuário, mas em uma conexão TCP com o banco de dados local, digite:
mysql --user=eva --password --host=127.0.0.1
A configuração de autenticação padrão, bem como o nome de usuário e a senha administrativos iniciais, podem diferir dependendo de como o MySQL foi instalado. Muitos métodos, no entanto, configuram o MySQL para usar um soquete Unix e incluem um padrão
root
usuário como a conta administrativa. Nesses casos, você pode fazer login no banco de dados como
root
usuário digitando:mysql --user=root --password
Você será solicitado a fornecer a senha administrativa que foi selecionada ou gerada durante a instalação para continuar.
Todos esses métodos permitem que você se conecte a um banco de dados MySQL local.
Conectando-se a um banco de dados remoto
Se você deseja se conectar a um banco de dados MySQL remoto, você terá que fornecer a localização de rede do host remoto e potencialmente adicionar algumas informações adicionais.
Os métodos de autenticação disponíveis variam de acordo com a configuração da instância MySQL. Mais comumente, porém, você precisa fornecer os seguintes parâmetros para autenticar:
Opção | Descrição |
---|---|
--host= ou -h | O nome do host da rede ou o endereço IP do servidor MySQL. |
--port= ou -P | A porta de rede na qual o servidor MySQL está sendo executado. Se o servidor estiver usando a porta 3306, a porta padrão do MySQL, este parâmetro pode ser omitido. |
--user= ou -u | O nome de usuário do banco de dados com o qual você deseja se conectar. Se não for especificado, seu nome de usuário do sistema operacional será usado. |
--password ou -p | Indique que você deseja fornecer uma senha para a conta especificada. O mysql cliente irá pedir-lhe a palavra-passe assim que carregar em Enter . |
Banco de dados MySQL | O nome do banco de dados MySQL que você deseja acessar. Se não for especificado, mysql irá se conectar ao servidor sem se conectar a um banco de dados específico. |
O formato básico para se conectar a um banco de dados remoto normalmente se parece com isto:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
Após pressionar Enter , o
mysql
cliente solicitará a senha. Se você autenticar com sucesso, uma nova sessão interativa do MySQL será iniciada. Como exemplo, podemos imaginar querer se conectar a um banco de dados com os seguintes requisitos:
- nome do host:
myhost
- porta:1234
- banco de dados:
applicationdb
- nome de usuário:
myapplicationuser
- senha:
mypass
Chamando
mysql
com as seguintes opções permitiria autenticar:mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
Ao pressionar enter, você receberá uma senha na qual poderá autenticar com
mypass
. Ajustando a configuração de autenticação de um servidor MySQL
Se você deseja modificar as regras que determinam como os usuários podem se autenticar em suas instâncias MySQL, você pode fazer isso modificando a configuração do seu servidor. Você pode descobrir como modificar a configuração de autenticação do MySQL neste artigo.
Conclusão
Neste guia, abordamos a autenticação do MySQL do lado do cliente. Demonstramos como usar o
mysql
cliente de linha de comando para se conectar a instâncias de banco de dados locais e remotas. Saber como se conectar a várias instâncias do MySQL é um dos primeiros passos que você precisa entender ao começar a trabalhar no sistema de banco de dados. Você pode executar uma instância MySQL local para desenvolvimento que não precise de nenhuma autenticação especial, mas seus bancos de dados em preparação e produção quase certamente exigirão autenticação. Ser capaz de autenticar em ambos os casos permitirá que você trabalhe bem em diferentes ambientes.