Aceite respostas em algumas de suas perguntas anteriores, pois parece que várias dessas respostas foram soluções corretas - clique na marca de seleção destacada à esquerda da resposta.
Shane Madden
Respostas:
15
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.
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.
Se a resposta resolveu seu problema, clique na marca de seleção para aceitá-lo.
Zoredache
1
Isso armazenará a senha como texto sem formatação, uma prática que eu desencorajaria do ponto de vista da segurança.
Giovanni
@Giovanni com certeza, embora o mysql_config_editor que você mencionou na sua resposta, enquanto útil não esteja disponível até você executar o 5.6.6. Hoje ainda existem distribuições com versões mais antigas.
precisa
Mas como isso é feito no Windows?
Wolfpack'08
9
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:
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'.
Então, qual é a resposta para essa pergunta então?
Pierre.Vriens
0
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
Respostas:
Crie um arquivo nomeado
.my.cnf
em 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).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.
fonte
Você pode usar o
mysql_config_editor
utilitá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:
e digite sua senha quando solicitado.
Isso armazenará suas credenciais de autenticação no
client
caminho de login padrão .Você pode armazenar várias credenciais de autenticação especificando uma
--login-path
opção diferente :Por padrão, o
mysql
cliente 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-path
opçã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:O
mysql
cliente 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:
Mais informações sobre o utilitário podem ser encontradas em "mysql_config_editor - MySQL Configuration Utility" .
fonte
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'.fonte
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 ....
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
fonte