Mysql Exporta a configuração atual para um arquivo

11

Nós perdemos nosso arquivo my.cnf e nos perguntamos se existe uma maneira de exportar uma cópia da instância mysql atualmente em execução.

Obrigado!

    
por samspot 12.08.2011 / 22:05

3 respostas

16

Três (3) Opções

OPÇÃO 1: De dentro do cliente mysql

mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt

Isso irá capturar todas as opções no arquivo de texto.

OPÇÃO 2: Na linha de comando do Linux

ps -ef | grep mysqld | grep -v grep

Isto irá mostrar as opções que o mysqld iniciou com as configurações do mysqld_safe

OPÇÃO 3: Pergunte ao servidor diretamente

mysqld --help --verbose

Na parte inferior da tela 'mysqld --help --verbose', você verá as configurações atuais do mysqld carregadas de my.cnf ou padronizadas.

    
por 12.08.2011 / 22:12
3

Estas instruções são para o estoque mariadb on centos 7.1.

Aqui segue como fazer backup ou replicar as configurações atuais de uma máquina para uma nova instalação, presente ou futura.

Na máquina da qual queremos copiar as configurações, podemos executar:

/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt

Em outra máquina, podemos instalar o mariadb-server e executar:

/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt

Em seguida, colocamos os dois arquivos em um diretório, que neste exemplo é "/ a /".

Então nós corremos:

comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)

Se não houver saída, os dois arquivos são idênticos. O que significa que todas as configurações, em ambas as máquinas, estão no padrão.

Se houver alguma saída, algumas linhas não serão recuadas, enquanto algumas linhas serão recuadas.

As linhas não recuadas estão presentes apenas no primeiro arquivo, que aqui é /a/mysql_current_settings.txt.

As linhas de indentend estão presentes apenas no segundo arquivo, que aqui é /a/mysql_default_settings.txt.

Agora sabemos todas as configurações, exceto algumas configurações que são definidas na linha de comando que iniciou o mysqld. Essas configurações podem vir de arquivos /etc/my.cnf ou /etc/my.cnf.d/*, ou de um script personalizado, ou um alias, etc. Em qualquer caso, podemos vê-los com o seguinte comando:

ps -ef | grep mysqld

Agora sabemos as poucas configurações que temos que alterar em uma nova instalação para configurá-la como a antiga.

Aqui seguem alguns outros detalhes.

Em centos 7.1, o seguinte comando mostra todas as configurações atuais, exceto algumas configurações que são definidas na linha de comando que iniciou o mysqld:

/usr/libexec/mysqld --help --verbose

No total, mostra:

na primeira parte, as configurações que podemos usar como primeiro parâmetro depois de "mysqld" quando o iniciamos;

na segunda parte, as configurações são definidas em tempo de compilação;

na terceira parte, as configurações atuais.

Mesmo se a última linha de sua saída disser:     para ver quais valores um servidor MySQL em execução está usando, digite:

    mysqladmin variables -uroot -p

esse comando não mostra, por exemplo, bind-address, mesmo se nós o alterarmos em /etc/my.cnf e reiniciar o mysql.

O seguinte comando também mostra muitas configurações, mas não "bind-address":

mysql -uroot -p -e"SHOW VARIABLES;"

Note que, no centos 7.1, o mysqld não está no $ PATH.

    
por 28.10.2015 / 12:47
1

Aqui está a minha maneira favorita de gerar um my.cnf atual:

{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL 'mysql -V|sed 's,^.*\(V.*\)\, for.*,,'' - By: 'logname'@'hostname -f' on 'date +%c'\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log

No entanto, isso não funciona de forma confiável para o Mac OS X.

Isto produzirá um log de variáveis limpas, comentado, pronto para importar para o seu my.cnf.

Fonte original: link

    
por 20.07.2014 / 19:28

Tags