GNU/Linux >> Znalost Linux >  >> Linux

Jak najdu umístění MySQL my.cnf

Najít můžete vždy spustit v terminálu.

find / -name my.cnf

Neexistuje žádný interní příkaz MySQL, který by to sledoval, je to trochu příliš abstraktní. Soubor může být v 5 (nebo více?) umístěních a všechna by byla platná, protože se načítají kaskádovitě.

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • $MYSQL_HOME/my.cnf
  • [datadir]/my.cnf
  • ~/.my.cnf

Toto jsou výchozí umístění, na která se MySQL dívá. Pokud najde více než jednu, načte každou z nich a hodnoty se navzájem přepíší (myslím, že v uvedeném pořadí). Také --defaults-file parametr může přepsat celou věc, takže... v podstatě je to obrovská bolest v zadku.

Ale díky tomu, že je to tak matoucí, je velká šance, že je to právě v /etc/my.cnf.

(Pokud chcete pouze vidět hodnoty:SHOW VARIABLES , ale budete k tomu potřebovat oprávnění.)


Spusťte mysql --help a uvidíte:

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


mysql --help | grep /my.cnf | xargs ls

vám řekne, kde je my.cnf je umístěn na Mac/Linux

ls: cannot access '/etc/my.cnf': No such file or directory
ls: cannot access '~/.my.cnf': No such file or directory
 /etc/mysql/my.cnf

V tomto případě je v /etc/mysql/my.cnf

ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf

V tomto případě je v /usr/local/etc/my.cnf


Ve skutečnosti můžete MySQL „požádat“ o seznam všech umístění, kde hledá my.cnf (nebo my.ini ve Windows). Nejedná se však o SQL dotaz. Raději proveďte:

$ mysqladmin --help

nebo před 5.7:

$ mysqld --help --verbose

Hned na prvních řádcích najdete zprávu se seznamem všech míst my.cnf, která hledá. Na mém počítači je:

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

Nebo v systému Windows:

Default options are read from the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf

Upozorňujeme však, že může se stát, že v žádném z těchto umístění není soubor my.cnf . Soubor si tedy můžete vytvořit sami – použijte jeden z ukázkových konfiguračních souborů dodávaných s distribucí MySQL (na Linuxu – viz /usr/share/mysql/*.cnf soubory a použijte to, co je pro vás vhodné - zkopírujte jej do /etc/my.cnf a poté upravte podle potřeby).

Všimněte si také, že existuje také možnost příkazového řádku --defaults-file který může definovat vlastní cestu k souboru my.cnf nebo my.ini. To je například případ MySQL 5.5 ve Windows – ukazuje na soubor my.ini v datovém adresáři, který normálně není uveden s mysqld --help --verbose . V systému Windows – podívejte se na vlastnosti služby a zjistěte, zda je to váš případ.

Nakonec se podívejte na https://dev.mysql.com/doc/refman/8.0/en/option-files.html – je to tam popsáno podrobněji.


Linux
  1. Jak najít soubor v Linuxu

  2. Jak najít balíček, který poskytuje konkrétní soubor v Linuxu

  3. Jak najít nejstarší soubor ve stromu adresářů v Linuxu

  1. Jak uložit výstup SHOW PROCESSLIST do souboru v MySQL?

  2. Jak získat součet Md5 obsahu adresáře jako jeden součet?

  3. Jak najít proces s maximálním počtem deskriptorů souborů?

  1. Jak přesunout datový adresář Mysql?

  2. Jaké je správné umístění souboru mysql.sock na linuxu

  3. Jak mohu najít nejstarší soubor ve stromu adresářů