Arquivos de configuração

O arquivo de configuração padrão do MySQL se chama my.cf, mas isso tem mudado de distribuição para distribuição, atualmente os arquivos do Debian e CentOS ficam em locais diferentes:

cat /etc/my.cnf # centos
cat /etc/mysql/mysql.conf.d/mysqld.conf # debian

Por questões de organização, é possível adicionar configurações nos diretórios ".d", desde que esteja especificado o carregamento nos arquivos citados acima.

O arquivo .my.cnf

Se você deseja facilitar sua conexão com algum servidor sem precisar digitar a senha no terminal, é possível criar um arquivo na home do seu usuário com o nome .my.cnf e especificar os parâmetros de conexão do client:

[client]
user=root
password=1234

Os arquivos de configuração são lidos nesta ordem:

Todos esses arquivos são arquivos de texto puro, e isso eventualmente pode causar problemas pois a senha ficará o tempo todo exposta neste arquivo.

O arquivo .mylogin.cnf

O arquivo .mylogin.cnf, é criado com o auxílio do comando mysql_config_editor que criptografa o usuário, a senha, o host, o socket e a porta utilizada:

mysql_config_editor set --host='127.0.0.1' --user='root' --password

Por padrão apenas a sessão [client] é criada dentro do arquivo. Cada sessão é conhecida como login-path, antes de listá-la vamos criar uma outra entrada para um outro servidor hipotético:

mysql_config_editor set --host='192.168.99.20' --user='root' --password --login-path=slave

Agora podemos nos logar em ambos os servidores, basta especificar a sessão com --login-path:

mysql # sem nenhuma opção, é o mesmo que especificar --login-path=client
mysql --login-path=slave

Podemos verificar a configuração de cada sessão com o comando:

mysql_config_editor print --login-path='slave' # podemos utilizar --all para exibir todas as sessões
[slave]
user = root
password = *****
host = 192.168.99.20