MySQL :: Manual de Referência MySQL 8.0 :: 4.2.4 Ligação ao Servidor MySQL Utilizando Opções de Comando

4.2.4 Ligação ao Servidor MySQL Utilizando Opções de Comando

Esta secção descreve o uso de opções de linha de comando para especificar como estabelecer ligações ao servidor MySQL, para clientes tais como mysql ou mysqldump. Para informação sobre como estabelecer conexões usando strings de conexão tipo URI ou pares de chaves de valor, para clientes tais como MySQL Shell, ver Secção 4.2.5, “Ligação ao servidor usando strings URI-Like ou pares de chaves de valor”. Para informação adicional se não conseguir ligar-se, ver Secção 6.2.21, “Resolução de Problemas de Ligação ao MySQL”.

Para um programa cliente se ligar ao servidor MySQL, deve utilizar os parâmetros de ligação apropriados, tais como o nome do anfitrião onde o servidor está a correr e o nome de utilizador e palavra-passe da sua conta MySQL. Cada parâmetro de ligação tem um valor por defeito, mas pode anular os valores por defeito conforme necessário, utilizando as opções do programa especificadas quer na linha de comando quer num ficheiro de opções.

Os exemplos aqui apresentados utilizam o programa cliente mysql, mas os princípios aplicam-se a outros clientes tais como mysqldump, mysqladmin, ou mysqlshow.

Este comando invoca mysql sem especificar nenhum parâmetro de ligação explícito:

mysql

Porque não existem opções de parâmetros, os valores por defeito aplicam-se:

  • O nome do anfitrião por defeito é localhost. No Unix, isto tem um significado especial, como descrito mais adiante.

  • O nome de utilizador por defeito é ODBC no Windows ou o seu nome de login Unix no Unix.

  • Não é enviada nenhuma palavra-passe porque nem --password nem -p é dada.

  • p> Para mysql, o primeiro argumento de nãoopção é tomado como o nome da base de dados por defeito. Como não existe tal argumento, o mysql não selecciona nenhuma base de dados predefinida.

Para especificar explicitamente o nome do anfitrião e o nome do utilizador, bem como uma palavra-passe, fornecer as opções apropriadas na linha de comando. Para seleccionar uma base de dados predefinida, adicionar um argumento de nome de base de dados. Exemplos:

mysql --host=localhost --user=myname --password=password mydbmysql -h localhost -u myname -ppassword mydb

Para opções de senha, o valor da senha é opcional:

  • Se utilizar uma opção --password ou -p e especificar um valor de senha, não deve haver espaço entre --password= ou -p e a palavra-passe que se lhe segue.

  • Se utilizar --password ou -p mas não especificar um valor de senha, o programa cliente pede-lhe para introduzir a senha. A palavra-passe não é mostrada à medida que a introduz. Isto é mais seguro do que dar a palavra-passe na linha de comando, o que pode permitir a outros utilizadores no seu sistema ver a linha da palavra-passe executando um comando como o ps. Ver Secção 6.1.2.1, “Directrizes para a segurança da palavra-passe do utilizador final”.

  • p> Para especificar explicitamente que não existe palavra-passe e que o programa cliente não deve solicitar uma, use o --skip-password opção.

Como acabou de ser mencionado, incluir o valor da palavra-passe na linha de comando é um risco de segurança. Para evitar este risco, especificar a opção --password ou -p sem qualquer valor da palavra-passe seguinte:

mysql --host=localhost --user=myname --password mydbmysql -h localhost -u myname -p mydb

Quando a opção --password ou -p é dada sem valor de senha, o programa cliente imprime um prompt e espera que o utilizador introduza a senha. (Nestes exemplos, mydb não é interpretado como palavra-passe porque é separado da opção de palavra-passe anterior por um espaço).

Em alguns sistemas, a rotina da biblioteca que o MySQL utiliza para solicitar uma palavra-passe limita automaticamente a palavra-passe a oito caracteres. Essa limitação é uma propriedade da biblioteca do sistema, não do MySQL. Internamente, o MySQL não tem qualquer limite para o comprimento da palavra-passe. Para contornar a limitação nos sistemas por ela afectados, especifique a sua palavra-passe num ficheiro de opções (ver Secção 4.2.2.2, “Utilização de ficheiros de opções”). Outra solução é alterar a sua palavra-passe MySQL para um valor que tenha oito ou menos caracteres, mas que tenha a desvantagem de as palavras-passe mais curtas tenderem a ser menos seguras.

Programas clientes determinam o tipo de ligação a fazer da seguinte forma:

  • Se o anfitrião não for especificado ou for localhost, ocorre uma ligação ao anfitrião local:

    • No Windows, o cliente liga-se usando memória partilhada, se o servidor foi iniciado com o shared_memory variável de sistema activada para suportar ligações de memória partilhada.

    • Em Unix, os programas MySQL tratam o nome do anfitrião localhost especialmente, de uma forma provavelmente diferente do que se espera em comparação com outros programas baseados em rede: o cliente liga-se utilizando um ficheiro de socket Unix. A opção --socket ou a MYSQL_UNIX_PORT variável de ambiente pode ser usada para especificar o nome do socket.

  • No Windows, se host for . (período), ou TCP/IP não estiver activado e --socket não estiver especificado ou o anfitrião estiver vazio, o cliente liga-se usando um tubo nomeado, se o servidor foi iniciado com o named_pipe variável de sistema activada para suportar ligações de tubo nomeado. Se as ligações named-pipe não forem suportadas ou se o utilizador que faz a ligação não for um membro do grupo Windows especificado pelo named_pipe_full_access_group variável de sistema, ocorre um erro.

  • Caso contrário, a ligação utiliza TCP/IP.

A opção --protocol permite utilizar um protocolo de transporte particular mesmo quando outras opções normalmente resultam na utilização de um protocolo diferente. Ou seja, --protocol especifica explicitamente o protocolo de transporte e anula as regras precedentes, mesmo para localhost.

só são utilizadas ou verificadas as opções de ligação que são relevantes para o protocolo de transporte seleccionado. Outras opções de ligação são ignoradas. Por exemplo, com --host=localhost no Unix, o cliente tenta ligar-se ao servidor local usando um ficheiro de socket Unix, mesmo que um --port ou -P seja dada a opção de especificar um número de porta TCP/IP.

Para assegurar que o cliente faz uma ligação TCP/IP ao servidor local, usar --host ou -h para especificar um valor de nome de anfitrião de 127.0.0.1 (em vez de localhost), ou o endereço IP ou nome do servidor local. Pode também especificar explicitamente o protocolo de transporte, mesmo para localhost, usando a opção --protocol=TCP. Exemplos:

mysql --host=127.0.0.1mysql --protocol=TCP

Se o servidor estiver configurado para aceitar ligações IPv6, os clientes podem ligar-se ao servidor local sobre IPv6 usando --host=::1. Ver Secção 5.1.13, “Suporte IPv6”.

No Windows, para forçar um cliente MySQL a utilizar uma ligação de tubo nomeado, especificar a opção --pipe ou --protocol=PIPE, ou especificar . (ponto) como o nome do anfitrião. Se o servidor não foi iniciado com a opção named_pipe variável de sistema activada para suportar ligações de tubo nomeado ou se o utilizador que faz a ligação não for um membro do grupo Windows especificado pela variável de sistema named_pipe_full_access_group, ocorre um erro. Use a opção --socket para especificar o nome do tubo se não quiser usar o nome padrão do tubo.

Ligações a servidores remotos utilizam TCP/IP. Este comando liga-se ao servidor em execução em remote.example.com usando o número de porta por defeito (3306):

mysql --host=remote.example.com

Para especificar um número de porta explicitamente, usar a opção --port ou -P:

mysql --host=remote.example.com --port=13306

Também pode especificar um número de porta para ligações a um servidor local. No entanto, como indicado anteriormente, as ligações a localhost no Unix utilizam um ficheiro socket por defeito, por isso, a menos que force uma ligação TCP/IP como descrito anteriormente, qualquer opção que especifique um número de porta é ignorada.

Para este comando, o programa usa um ficheiro socket no Unix e a opção --port é ignorada:

mysql --port=13306 --host=localhost

Para que o número da porta seja utilizado, forçar uma ligação TCP/IP. Por exemplo, invocar o programa de uma destas maneiras:

mysql --port=13306 --host=127.0.0.1mysql --port=13306 --protocol=TCP

Para informação adicional sobre opções que controlam como os programas clientes estabelecem ligações ao servidor, ver Secção 4.2.3, “Opções de Comando para Ligação ao Servidor”.

É possível especificar parâmetros de ligação sem os introduzir na linha de comando cada vez que se invoca um programa cliente:

  • Especificar os parâmetros de ligação na secção de um ficheiro de opções. A secção relevante do ficheiro pode parecer-se com esta:

    host=host_nameuser=user_namepassword=password

    Para mais informações, ver Secção 4.2.2.2, “Utilização de ficheiros de opções”.

  • Alguns parâmetros de ligação podem ser especificados utilizando variáveis de ambiente. Exemplos:

    • Para especificar o hospedeiro para mysql, usar MYSQL_HOST.

    • p> No Windows, para especificar o nome de utilizador MySQL, use USER.

    Para uma lista de variáveis de ambiente suportadas, ver Secção 4.9, “Variáveis de Ambiente”.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *