Armazene a senha do cliente MySQL ou configure a senha menos autenticação

9

Estou usando o cliente da linha de comando mysql e não quero precisar fornecer a senha sempre que iniciar o cliente. Quais são minhas opções?

    
por Trip 10.02.2012 / 19:55

4 respostas

11

Crie um arquivo chamado .my.cnf em seu diretório inicial que se parece com isso. Certifique-se de que as permissões do sistema de arquivos estejam definidas de tal forma que somente o usuário proprietário possa lê-lo (0600).

[client]
host     = localhost
user     = username.
password = thepassword
socket   = /var/run/mysqld/mysqld.sock
#database = mysql

Como você também marcou sua pergunta mysqldump, você deve examinar esta questão.

Usando o mysqldump no cron job sem senha de root

Update (2016-06-29) Se você estiver executando o mysql 5.6.6 ou superior, você deve olhar o ferramenta mysql_config_editor que permite que você armazenar credenciais em um arquivo criptografado. Obrigado ao Giovanni por mencionar isso para mim.

    
por 10.02.2012 / 20:00
8

Você pode usar o utilitário mysql_config_editor para armazenar credenciais de autenticação em um arquivo de caminho de login criptografado denominado .mylogin.cnf .

Para criar um novo conjunto de credenciais, execute:

mysql_config_editor set --host=db.host.org --user=dbuser --password

e digite sua senha quando solicitado.

Isso armazenará suas credenciais de autenticação no caminho de login padrão client .

Você pode armazenar várias credenciais de autenticação especificando uma opção --login-path diferente:

mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password

Por padrão, o cliente mysql lê os grupos [client] e [mysql] de outros arquivos de opções, assim também os lê a partir do arquivo de caminho de login. Com uma opção --login-path , os programas clientes também leem o caminho de login nomeado do arquivo de caminho de login. Os grupos de opções lidos de outros arquivos de opções permanecem os mesmos. Considere este comando:

mysql --login-path=db2

O cliente mysql[client] e [mysql] de outros arquivos de opções e [client] , [mysql] e [mypath] do arquivo de caminho de login.

Para imprimir todas as informações armazenadas na execução do arquivo de configuração:

mysql_config_editor print --all=true

Mais informações sobre o utilitário podem ser encontradas em "mysql_config_editor - MySQL Configuration Utility ".

    
por 29.06.2016 / 17:38
0

Não devemos fingir que o .mylogin.cnf é seguro, pois eu posso usar my_print_defaults -s [use your login-path] para fazer com que a senha apareça em texto simples. É por isso que o MariaDB não suporta esta abordagem de 'segurança por obscuridade'.

    
por 03.10.2018 / 20:07
0

Existe uma outra maneira, ortogonal aos métodos mencionados acima, mas pode ser um risco de segurança se alguém estiver assistindo seu monitor, OU se você estiver salvando seu histórico .

Não obstante, é uma opção que impedirá que você seja avisado, e uma que eu uso em imagens de docker descartáveis e assim ...

mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.

Você não será solicitado, você pode definir um alias temporário no shell, se desejar.

Use com cuidado.

mysql Ver 14.14 Distrib 5.5.61-38.13, para debian-linux-gnu (x86_64) usando readline 5.1

    
por 02.11.2018 / 05:46

Tags