Estou usando o cliente de linha de comando mysql e não quero fornecer a senha toda vez que inicio o cliente. Quais são as minhas opções?
Estou usando o cliente de linha de comando mysql e não quero fornecer a senha toda vez que inicio o cliente. Quais são as minhas opções?
Respostas:
Crie um arquivo nomeado .my.cnfem seu diretório pessoal que se parece com isso. Verifique se as permissões do sistema de arquivos estão definidas de 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 no mysqldump, você deve analisar esta questão.
Usando mysqldump no cron job sem senha root
Atualização (29/06/2016) Se você estiver executando o mysql 5.6.6 ou superior, consulte a ferramenta mysql_config_editor que permite armazenar credenciais em um arquivo criptografado. Agradeço ao Giovanni por mencionar isso para mim.
Você pode usar o mysql_config_editorutilitário para armazenar credenciais de autenticação em um arquivo de caminho de login criptografado chamado .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 clientcaminho de login padrão .
Você pode armazenar várias credenciais de autenticação especificando uma --login-pathopção diferente :
mysql_config_editor set --login-path=db2 --host=db2.host.org --user=dbuser --password
Por padrão, o mysqlcliente lê os grupos [client]e [mysql]de outros arquivos de opções, e também os lê no arquivo do caminho de login. Com uma --login-pathopção, os programas clientes também leem o caminho de login nomeado no 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 mysqlcliente lê [client]e [mysql]de outros arquivos de opções, e [client], [mysql]e, [mypath]a partir do arquivo caminho login.
Para imprimir todas as informações armazenadas no arquivo de configuração, execute:
mysql_config_editor print --all=true
Mais informações sobre o utilitário podem ser encontradas em "mysql_config_editor - MySQL Configuration Utility" .
Não devemos fingir que o .mylogin.cnf é seguro, pois posso usá my_print_defaults -s [use your login-path]-lo para fazer com que essa senha apareça em texto simples. É por isso que o MariaDB não suporta essa abordagem de 'segurança por obscuridade'.
Existe uma outra maneira, ortogonal aos métodos mencionados acima, mas pode ser um risco de segurança se alguém estiver assistindo ao monitor ou se estiver salvando seu histórico .
No entanto, é uma opção que impede que você seja solicitado e que eu uso em imagens de janela de encaixe descartáveis e coisas do tipo ....
mysql -u YOUR_USER --password=YOUR_PASSWORD_HERE your_database -e "your query" etc.
Você não será solicitado, poderá 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 o readline 5.1