Where is MySQL 5.7 my.cnf file?
In Ubuntu I had my.cnf file of MySQL 5.6 in /etc/my.cnf . But I can’t find the same file of MySQL 5.7. From where can I find that? I did a find in entire / (root). But I couldn’t find it anywhere. Any clues? I’m trying to set max_connections value.
The doc is a bit clear on it. dev.mysql.com/doc/refman/5.7/en/option-files.html . see the comment at the bottom from Tim MAHER-DE TROYER
2 Answers 2
In MySQL 5.7, the default cnf is at:
/etc/mysql/mysql.conf.d/mysqld.cnf
Just a note for people trying to set lower_case_table_names=1 (or 0, 2), type in terminal /etc/home$ mysqld —help —verbose and search for my.cnf, under default options look for places where my.cnf is supposed to be there and then check if actually they exist in file system, if any location is missing this file, copy the contents of mysqld.cnf and paste it in a new file named my.cnf (.my.cnf for ~/ dir).
The file is actually located at /etc/my.cnf or /etc/mysql/my.cnf It has been renamed from mysqld.cnf to just my.cnf in 5.7 dev.mysql.com/doc/refman/5.7/en/option-files.html
Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf The following groups are read: mysql client The following options may be given as the first argument: --print-defaults Print the program argument list and exit. --no-defaults Don't read default options from any option file, except for login file. --defaults-file=# Only read default options from the given file #. --defaults-extra-file=# Read this file after the global files are read. --defaults-group-suffix=# Also read groups with concat(group, suffix) --login-path=# Read this path from the login file.
Linked
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.17.43536
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.
Как найти расположение MySQL my.cnf
Существует ли команда MySQL для поиска конфигурационного файла my.cnf п одобно тому, как phpinfo() в PHP находит php.ini?
Ответ 1
Ответ 2
На самом деле , вы можете « запросить » у MySQL список всех мест, где он ищет my.cnf (или my.ini в Windows). Однако это не SQL-запрос. Просто выполните команду:
$ mysqladmin —help
Или для версии 5.7:
$ mysqld —help —verbose
В самых первых строках ответа вы найдете сообщение со списком всех мест my.cnf. На моей машине это:
Параметры по умолчанию считываются из следующих файлов в указанном порядке:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf
Или для Windows:
Параметры по умолчанию считываются из следующих файлов в указанном порядке:
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
Обратите внимание, что может случиться так, что ни в одном из этих мест не окажется файла my.cnf. Поэтому вы можете создать файл самостоятельно — используйте один из образцов конфигурационных файлов, поставляемых с дистрибутивом MySQL (в Linux смотрите файлы /usr/share/mysql/*.cnf и используйте тот, который подходит вам — скопируйте его в /etc/my.cnf, а затем измените по необходимости).
Также обратите внимание, что существует опция командной строки —defaults-file, которая может определить собственный путь к файлу my.cnf или my.ini. Например, для MySQL 5.5 на Windows это указывает на файл my.ini в каталоге данных, который обычно не указывается в mysqld —help —verbose. В Windows — посмотрите свойства службы, чтобы выяснить, так ли это в вашем случае.
Наконец, проверьте сайт https://dev.mysql.com/doc/refman/8.0/en/option-files.html — там все описано более подробно.
Ответ 3
mysql —help | grep /my.cnf | xargs ls
Эта команда подскажет вам, где находится my.cnf на Mac/Linux:
ls: cannot access ‘/etc/my.cnf’: Нет такого файла или каталога
ls: cannot access ‘~/.my.cnf’: Нет такого файла или каталога
/etc/mysql/my.cnf
В данном случае он находится в файле /etc/mysql/my.cnf.
Ответ 4
Это может сработать:
strace mysql «;» 2>&1 | grep cnf
На моей машине этот код выводит:
stat64(«/etc/my.cnf», 0xbf9faafc) = -1 ENOENT (No such file or directory)
stat64(«/etc/mysql/my.cnf», ) = 0
open(«/etc/mysql/my.cnf», O_RDONLY|O_LARGEFILE) = 3
read(3, «# /etc/mysql/my.cnf: The global «. 4096) = 4096
stat64(«/home/xxxxx/.my.cnf», 0xbf9faafc) = -1 ENOENT (No such file or directory)
Таким образом, похоже, что /etc/mysql/my.cnf — то, что надо, поскольку stat64() и read() были выполнены успешно.
Ответ 5
По умолчанию mysql ищет my.cnf сначала в папке /etc. Если в этой папке нет файла /etc/my.cnf, я советую вам создать новый файл в следующей папке, как указано в документации (https://dev.mysql.com/doc/refman/5.6/en/option-files.html).
Вы также можете поискать существующий my.cnf в вашей установке mysql. Для этого запустите следующую команду:
sudo find / -name «*.cnf»
Вы можете использовать следующий конфигурационный файл с таблицей myisam и без поддержки innodb mysql (из установки порта mysql на mac os x maverick). Пожалуйста, проверьте каждую команду в этом конфигурационном файле.
# Пример конфигурационного файла MySQL для большинства систем.
#
# Это работает для большой системы с памятью = 512M, в которой работает в основном
# MySQL.
#
# Программы MySQL ищут файлы опций в нескольких
# местах, которые зависят от платформы развертывания.
# Вы можете скопировать этот файл опций в одно из этих мест. Информацию об этих местах см:
# http://dev.mysql.com/doc/mysql/en/option-files.html
#
# В этом файле вы можете использовать все опции, которые поддерживает программа.
# Если вы хотите узнать, какие опции поддерживает программа, запустите программу
# с опцией «—help».
# Следующие опции будут передаваться всем клиентам MySQL
[client]
#password = your_password
port = 3306
socket = /opt/local/var/run/mysql5/mysqld.sock
# Далее следуют записи для некоторых конкретных программ
# The MySQL server
[mysqld]
port = 3306
socket = /opt/local/var/run/mysql5/mysqld.sock
skip-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 256
sort_buffer_size = 1M
read_buffer_size = 1M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
thread_cache_size = 8
query_cache_size= 16M
# Try number of CPU’s*2 for thread_concurrency
thread_concurrency = 8
# Не следует прослушивать порт TCP/IP. Это может повысить безопасность,
# если все процессы, которым нужно подключиться к mysqld, работают на одном хосте.
# Все взаимодействие с mysqld должно осуществляться через сокеты Unix или именованные каналы.
# Обратите внимание, что использование этой опции без включения именованных труб в Windows
# (с помощью опции «enable-named-pipe») сделает mysqld бесполезным!
#
#skip-networking
# Replication Master Server (по умолчанию)
# Для репликации требуется двоичное протоколирование
log-bin=mysql-bin
# двоичный формат протоколирования — рекомендуется смешанный режим
binlog_format=mixed
# требуемый уникальный идентификатор от 1 до 2^32 — 1
# значение по умолчанию равно 1, если master-host не установлен
# но не будет функционировать как мастер, если пропущено
server-id = 1
# Replication Slave (закомментируйте раздел master, чтобы использовать это)
#
# Чтобы настроить этот хост в качестве ведомого устройства репликации, вы можете выбрать между
# двумя методами:
#
# 1) Использовать команду CHANGE MASTER TO (полностью описана в нашем руководстве) — #
# синтаксис следующий:
#
# CHANGE MASTER TO MASTER_HOST=, MASTER_PORT=,
# MASTER_USER=, MASTER_PASSWORD= ;
#
# где , , заменяются строками в кавычках, а
# номером порта мастера (по умолчанию 3306).
#
# Пример:
#
# CHANGE MASTER TO MASTER_HOST=’125.564.12.1′, MASTER_PORT=3306,
# MASTER_USER=’joe’, MASTER_PASSWORD=’secret’;
#
# ИЛИ
#
# 2) Установите переменные, указанные ниже. Однако в случае, если вы выберете этот метод, то
# запустите репликацию в первый раз (даже неудачно, например ,
# если вы неправильно ввели пароль в master-password и ведомому не удается
# подключиться), ведомый создаст файл master.info, и люб ы е последующ и е
# изменения в этом файле значений переменных ниже будут проигнорированы и
# отменяться содержимым файла master.info, если вы не выключите
# ведомый сервер, удалите файл master.info и перезапустите ведомый сервер.
# По этой причине вы можете оставить приведенные ниже строки нетронутыми
# (закомментированные) и вместо них использовать CHANGE MASTER TO (см. выше)
#
# требуется уникальный идентификатор от 2 до 2^32 — 1
# (и отличный от master)
# по умолчанию равен 2, если установлен master-host
# но не будет функционировать как ведомое устройство, если пропущено
#server-id = 2
#
# Мастер репликации для этого ведомого — обязательный параметр
#master-host =
#
# Имя пользователя, которое ведомый будет использовать для аутентификации при подключении
# к ведущему устройству — обязательный параметр
#master-user =
#
# Пароль, с которым ведомый будет аутентифицироваться при подключении к
# ведущим — обязательный параметр
#master-password =
#
# Порт, на котором прослушивается мастер ,
# необязательный параметр — по умолчанию 3306
#master-port =
#
# двоичное протоколирование — не требуется для ведомых, но рекомендуется установить
#log-bin=mysql-bin
# Не комментируйте следующее, если вы используете таблицы InnoDB
#innodb_data_home_dir = /opt/local/var/db/mysql5
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /opt/local/var/db/mysql5
# Вы можете установить .._buffer_pool_size до 50 — 80 %
# оперативной памяти, но остерегайтесь слишком большого использования памяти.
#innodb_buffer_pool_size = 256M
#innodb_additional_mem_pool_size = 20M
# Установите размер .._log_file_size на 25 % от размера буферного пула
#innodb_log_file_size = 64M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Удалите следующий символ комментария, если вы не знакомы с SQL
#safe-updates
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
why can’t I find my.cnf?
What is your operating system ? On Debian Linux, it is located on /etc/mysql/my.cnf. If your cannot find it, you can create one from scratch using this documentation.
If you use Debian Linux or something similar, check the right location in the file /etc/init.d/mysql. In my case I can see CONF=/etc/mysql/my.cnf on the line 25.
You can try following command:
it will show you all locations of *.cnf files
you are a hero. your answer proved to be a great start for me to solve an issue i have been stuck for ages. 🙂
locate will only print files in directories that you can read.
Also, when you say you did updatedb, did you run
If not, then probably what you did run wasn’t equivalent. (The default locate program on Debian/Ubuntu these days is mlocate).
create a configuration file MySQL provides several configuration methods but, in general, it is easiest to to create a my.ini file in the mysql folder. There are hundreds of options to tweak MySQL to your exact requirements, but the simplest my.ini file is:
[mysqld] # installation directory basedir="C:/mysql/" # data directory datadir="D:/MySQLdata/"
Related
Hot Network Questions
Subscribe to RSS
To subscribe to this RSS feed, copy and paste this URL into your RSS reader.
Site design / logo © 2023 Stack Exchange Inc; user contributions licensed under CC BY-SA . rev 2023.7.17.43536
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy.