Estou tentando seguir este tutorial para habilitar o acesso remoto ao MySQL. O problema é: onde o my.cnf
arquivo deve estar localizado? Estou usando o Mac OS X Lion.
Estou tentando seguir este tutorial para habilitar o acesso remoto ao MySQL. O problema é: onde o my.cnf
arquivo deve estar localizado? Estou usando o Mac OS X Lion.
Respostas:
Este tópico no fórum MySQL diz:
Por padrão, a instalação do OS X não usa um my.cnf e o MySQL apenas usa os valores padrão. Para configurar o seu próprio my.cnf, você pode simplesmente criar um arquivo direto no / etc.
O OS X fornece exemplos de arquivos de configuração em /usr/local/mysql/support-files/
.
E se você não conseguir encontrá-los lá, o MySQLWorkbench pode criá-los para você:
my.cnf
arquivo que você está editando viamysql --verbose --help | grep my.cnf
No caso do Mac OS X Maverick, quando o MySQL é instalado via Homebrew, ele está localizado em /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
. Estou no High Sierra, mas ele foi instalado algumas versões atrás.
Em geral, nos sistemas Unix e Unix, os programas MySQL / MariaDB leem os arquivos de configuração / inicialização nos seguintes locais (na ordem especificada):
/etc/my.cnf
- Global/etc/mysql/my.cnf
- GlobalSYSCONFDIR/my.cnf
- Global
SYSCONFDIR
representa o diretório especificado com aSYSCONFDIR
opção paraCMake
quando o MySQL foi construído. Por padrão, este é o diretório etc localizado no diretório de instalação compilado.
$MYSQL_HOME/my.cnf
- Específico do servidor (somente servidor)
MYSQL_HOME
é uma variável de ambiente que contém o caminho para o diretório em que omy.cnf
arquivo específico do servidor reside. SeMYSQL_HOME
não estiver definido e você iniciar o servidor usando omysqld_safe
programa,mysqld_safe
defina-o comoBASEDIR
o diretório de instalação base do MySQL.
arquivo especificado com --defaults-extra-file=path
se houver
~/.my.cnf
- Específico do usuário~/.mylogin.cnf
- Específico do usuário (somente clientes)Fonte: Usando arquivos de opções .
Nota: Nas plataformas Unix, o MySQL ignora os arquivos de configuração que podem ser gravados no mundo. Isso é intencional como uma medida de segurança.
Além disso, no Mac, existe uma maneira simples de verificar isso.
Corre: sudo fs_usage | grep my.cnf
Isso relatará qualquer atividade do sistema de arquivos em tempo real relacionada a esse arquivo.
Em outro terminal, reinicie o MySQL / MariaDB, por exemplo
brew services restart mysql
ou:
brew services restart mariadb
No terminal com fs_usage
, o local correto deve ser mostrado, por exemplo
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Portanto, se o arquivo não existir, crie um.
sudo fs_usage | grep my.cnf
método é bastante eficiente. Eu encontrei este arquivo na pasta: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
com my_print_def
na coluna mais à direita. Depois de um tempo, é apenas /usr/local/etc/my.cnf
com o meu terminal na coluna mais à direita. Mas todos esses my.cnf
arquivos não existem!
Não sei qual versão do MySQL você está usando, mas aqui estão os locais possíveis do arquivo my.cnf para a versão 5.5 (retirada daqui ) no Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(o arquivo especificado com --defaults-extra-file=path
, se houver)~/.my.cnf
Para o MySQL 5.7 no Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Copiar conf padrão de /usr/local/mysql/support-files/my-default.cnf
Se você estiver usando o macOS Sierra e o arquivo não existir, execute
mysql --help or mysql --help | grep my.cnf
para ver os locais possíveis e a sequência de carregamento / leitura do my.cnf para mysql, crie o arquivo my.cnf em um dos diretórios sugeridos e adicione a seguinte linha
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
Você pode sudo touch /{preferred-path}/my.cnf
editar o arquivo para adicionar o modo sql,
sudo nano /{preferred-path}/my.cnf
Então reinicie o mysql, pronto, você está pronto. codificação feliz
O pacote atual do MySQL para o Mac OS X Mavericks (mysql-5.6.17-osx10.7-x86_64 no momento da redação deste documento) cria automaticamente um my.cnf durante a instalação.
Está localizado em /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
Adapte seu caminho de acordo com sua versão.
Então, nenhuma dessas coisas funcionou para mim. Estou usando a instalação dmg atual do mysql community server. O ps mostra que todos os parâmetros mais críticos normalmente em my.cnf são transmitidos na linha de comando, e eu não conseguia descobrir de onde isso vinha. Depois de fazer uma pesquisa de texto completo da minha caixa, encontrei-a em:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Assim, você pode alterá-los ou removê-los para que ele respeite os que você tem no my.cnf, onde quer que você decida colocá-lo.
Aproveitar!
Exemplo das informações do arquivo encontradas nesse arquivo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
/etc/my.cnf
Você pode abrir um terminal e digitar locate my.cnf
macOs sierra 10.12.6 versão mysql: 5.7.18_1 Eu corro localize my.cnf e o caminho é
/usr/local/etc/my.cnf
espero que ajude.
locate my.cnf
no seu terminal. qual o resultado?
Você pode criar seu arquivo em qualquer diretório que desejar. Após a criação, você pode "dizer" o caminho para a configuração do mysql:
Você pode verificar o arquivo
/usr/local/bin/mysql.server
e ver de onde my.conf
está sendo lido.
Geralmente é de /etc/my.cnf
ou ~/my.cnf
ou~/.my.cnf
~/.my.cnf
. Adicione um ponto antes do nome do arquivo.
Os documentos do MySQL para a versão que você está usando ajudarão. Geralmente é descrito como um Options File
ou MySQL Config File
.
Os documentos têm a localização desses arquivos na documentação, além de outras VITAL
informações, como a localização e pequenos exemplos de como o arquivo de configuração deve ser.
Nas plataformas Unix, o MySQL ignora os arquivos de configuração que podem ser gravados no mundo.
Isso é intencional como uma medida de segurança.
Em outras palavras, se você tiver as permissões erradas definidas no seu arquivo de configuração, NÃO será carregado.
Exemplo de permissão de configuração inicial de um dos arquivos de configuração:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
É possível usar
!include
diretivas nos arquivos de opções para incluir outros arquivos de opções e!includedir
procurar diretórios específicos por arquivos de opções ...... O MySQL não garante a ordem na qual os arquivos de opções no diretório serão lidos ...
Quaisquer arquivos a serem encontrados e incluídos usando a diretiva! Includedir nos sistemas operacionais Unix devem ter nomes de arquivos terminados em
.cnf
. No Windows, esta diretiva verifica se há arquivos com a extensão.ini
ou.cnf
.
Exemplos de como encontrar sua localização nos arquivos de configuração ou log ect .:
Isso não mostra o arquivo de configuração, mas ajuda a localizar os arquivos / pastas de instalação.
MySQL Versão 5.7 e 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Versão do MySQL <= 5.6
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
RIZZOMBP$ mysql --help | grep "Default options" -A 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
Crédito acima do comando: Erwin Mayer do ServerFault
RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
OU
RIZZOMBP$ ps aux | grep -i mysqld | grep -v $USER
_mysql 106 0.4 2.5 4232336 422112 ?? Ss 7:01PM 0:57.12
/usr/local/mysql/bin/mysqld
--user=_mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--log-error=/usr/local/mysql/data/mysqld.local.err
--pid-file=/usr/local/mysql/data/mysqld.local.pid
--keyring-file-data=/usr/local/mysql/keyring/keyring
--early-plugin-load=keyring_file=keyring_file.so
Se você precisar de um exemplo de referência detalhado, my.cnf:
Nenhuma afiliação / associação aos URLs
RIZZOMBP$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.3
BuildVersion: 18D109
RIZZOMBP$ mysql -V
mysql Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
RIZZOMBP$ mysqld -V
/usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld
Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
Fiz o check-in no macOS Sierra, o homebrew instalado MySql 5.7.12
Os arquivos de suporte estão localizados em
/usr/local/opt/mysql/support-files
Basta copiar my-default.cnf
como /etc/my.cnf
ou /etc/mysql/my.cnf
e a configuração será selecionada na reinicialização.
macOS High Sierra versão 10.13.6
mysql Ver 14.14 Distrib 5.7.22, para osx10.13 (x86_64) usando o wrapper EditLine Copyright (c) 2000, 2018, Oracle e / ou suas afiliadas. Todos os direitos reservados
As opções padrão são lidas nos seguintes arquivos na ordem especificada:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf para Catalina
Estou usando o mysql versão 5.7.17 no macOS High Sierra versão 10.13.3 e encontrei o arquivo de configuração do mysql aqui.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
onde ele vai apanhados, como por:DO NOT EDIT THIS FILE. It's a template which will be copied to the default location during install, and will be replaced if you upgrade to a newer version of MySQL.
Para Mac, o que funcionou para mim é criar um arquivo .my.cnf no meu ~ path. Espero que isto ajude.
Copie /usr/local/opt/mysql/support-files/my-default.cnf como /etc/my.cnf ou /etc/mysql/my.cnf e reinicie o mysql.
No meu caso, o arquivo não existia. No MySQL Workbench, fui para OPTIONS FILE e encontrei alguns valores padrão. Eu cliquei em aplicar. Ele pediu permissão. Em seguida, ele criou o arquivo my.cnf em / etc. No entanto, é muito importante lembrar que, na primeira vez em que você clica em "Aplicar", não faz alterações na configuração padrão. Depois que o arquivo for criado, você poderá fazer alterações que serão aplicadas quando clicar em "Aplicar". Caso contrário, não será mostrado o botão aplicar ao fazer alterações.
/etc/mysql/my.cnf
mas o MySQL Workbench não está ciente disso. Em vez disso, reclama que o arquivo de configuração com um caminho vazio não pode ser encontrado e, em seguida, oferece a criação de um novo arquivo.
As opções de rDefault são lidas nos seguintes arquivos na seguinte ordem: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
Estou executando o MacOS Mojave (10.14.6) e para que o MySQL reconheça meu arquivo de configuração, tive que colocá-lo em /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. Também tenho um link simbólico apontando para /usr/local/@mysql/etc/my.cnf.
Eu estava tentando desativar sql_mode = only_full_group_by e definir essa opção no arquivo de configuração era a única maneira de conseguir que a configuração persistisse nas sessões. O conteúdo do arquivo de configuração é:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Estou usando a instalação nativa do MySQL, não o Homebrew configurado.
Para o mysql 8.0.19, finalmente encontrei o my.cnf aqui: /usr/local/opt/mysql/.bottle/etc Copiei-o para / usr / local / opt / mysql / e o modifiquei. Então eu reinicio o serviço mysql, ele funciona.