MySQL onde está o caminho my.cnf?

5

Consegui localizar meu diretório de instalação para o MySQL: /usr/local/mysql/

Onde posso encontrar o caminho para my.cnf para saber onde devo configurar o servidor? Eu tentei criar um /etc/my.cnf (como mostrado abaixo) e não teve efeito

[mysqld]

#charset
collation_server=utf8_general_ci
character_set_server=utf8
default_character_set=utf8
    
por Webnet 04.01.2012 / 20:22

8 respostas

8

De acordo com este artigo :

A execução deste comando a partir da linha de comando / terminal mostrará onde o MySQL procurará o arquivo my.cnf nos sistemas Linux / BSD / OS X:

mysql --help | grep "Default options" -A 1 

Isso produzirá algo assim:

Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

Agora você pode verificar os arquivos usando a saída acima em /etc/my.cnf , depois /etc/mysql/my.cnf e assim por diante. Se não houver um em um desses locais, você pode criar um e saber que o MySQL irá usá-lo.

    
por 09.05.2016 / 05:05
3

Em um sistema Linux, 'locate my.cnf "será a solução mais rápida.

Se houver vários arquivos my.cnf, tudo parece provável (por exemplo, em /etc , /etc/mysql , /opt/mysql/etc , etc.), então você pode executar strace para ver onde o binário do MySQL tenta encontrar seu arquivo de configuração, mas eu acho que é um exagero.

    
por 04.01.2012 / 20:49
1

strace -fe open /etc/init.d/mysql start 2>&1|grep my.cnf deve mostrar a chamada do sistema usada para abrir o arquivo.

    
por 04.01.2012 / 20:55
1

Parece que o arquivo que seu cnf criou está sendo substituído por outro. Confira a ordem padrão abaixo.

De

mysqld --verbose --help

As opções padrão são lidas dos seguintes arquivos na ordem indicada: /etc/my.cnf ~ / .my.cnf /etc/my.cnf

    
por 04.01.2012 / 21:02
1

Como você tem certeza de que seu arquivo cnf não está sendo lido?

Você reiniciou o mysqld desde a mudança?

Você já tentou criar um novo banco de dados e analisou seus valores?

    
por 04.01.2012 / 21:08
1

OK, um tiro selvagem no escuro:

Se o banco de dados estiver instalado em / usr / local / mysql, tente procurar em / etc / local para my.cnf

Aqui está como você pode saber se você tem um my.cnf

Execute esta consulta

SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE VARIABLE_NAME IN ('wait_timeout',
'innodb_buffer_pool_size','innodb_log_file_size');

ou

SHOW VARIABLES LIKE = 'wait_timeout';
SHOW VARIABLES LIKE = 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE = 'innodb_log_file_size';

Se você deve receber

  • wait_timeout 28800
  • innodb_log_file_size 5242880
  • innodb_buffer_pool_size 8M (MySQL 5.0) ou 128M (MySQL 5.1 +)

você está executando com padrões e existe a possibilidade de que pode não haver um presente my.cnf.

    
por 04.01.2012 / 21:12
0

Como você instalou o MySQL e em qual plataforma?

Método de força bruta em um sistema operacional unixóide:

find / -name my.cnf -print
    
por 04.01.2012 / 20:26
0

Para instalar o locate e o updatedb para poder executá-lo ...

Usando o fedora, o centos é executado como root:

yum install mlocate

se você estiver executando o Ubuntu, execute:

sudo apt-get install mlocate

Depois de concluir a execução da instalação, updatedb Fedora (como root):

$updatedb 

Ubuntu:

sudo updatedb

então você pode executar o comando locate como listado acima. Novamente, o my.cnf está normalmente localizado em / etc. Você tem certeza que o mysql está instalado? se não fizer os comandos acima para instalá-lo e substituir mlocate com mysqld boa sorte!

    
por 04.01.2012 / 22:08

Tags