Я пытаюсь следовать этому руководству, чтобы включить удаленный доступ к MySQL. Проблема в том, где должен my.cnf
находиться файл? Я использую Mac OS X Lion.
Я пытаюсь следовать этому руководству, чтобы включить удаленный доступ к MySQL. Проблема в том, где должен my.cnf
находиться файл? Я использую Mac OS X Lion.
Ответы:
В этой теме на форуме MySQL говорится:
По умолчанию установка OS X не использует my.cnf, а MySQL просто использует значения по умолчанию. Чтобы настроить свой собственный my.cnf, вы можете просто создать файл прямо в / etc.
OS X предоставляет примеры файлов конфигурации в /usr/local/mysql/support-files/
.
И если вы не можете найти их там, MySQLWorkbench может создать их для вас следующим образом:
my.cnf
файл, который вы редактируете черезmysql --verbose --help | grep my.cnf
В случае Mac OS X Maverick, когда MySQL установлен через Homebrew, он расположен по адресу /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
. Я на High Sierra, но он был установлен несколько версий назад.
Как правило, в Unix и Unix-подобных системах программы MySQL / MariaDB читают файлы конфигурации / запуска в следующих местах (в указанном порядке):
/etc/my.cnf
- Глобальный/etc/mysql/my.cnf
- ГлобальныйSYSCONFDIR/my.cnf
- Глобальный
SYSCONFDIR
представляет каталог, указанный сSYSCONFDIR
параметром,CMake
когда был построен MySQL. По умолчанию это каталог etc, расположенный в каталоге скомпилированной установки.
$MYSQL_HOME/my.cnf
- Зависит от сервера (только сервер)
MYSQL_HOME
- переменная среды, содержащая путь к каталогу, в котором находитсяmy.cnf
файл для конкретного сервера . ЕслиMYSQL_HOME
не установлен, и вы запускаете сервер с помощьюmysqld_safe
программы,mysqld_safe
устанавливает егоBASEDIR
в базовый каталог установки MySQL.
файл, указанный с помощью, --defaults-extra-file=path
если есть
~/.my.cnf
- Индивидуально для пользователя~/.mylogin.cnf
- Индивидуально для пользователя (только для клиентов)Источник: Использование файлов опций .
Примечание. На платформах Unix MySQL игнорирует файлы конфигурации, которые доступны для записи всем. Это сделано намеренно в качестве меры безопасности.
Кроме того, на Mac есть простой способ проверить это.
Бегать: sudo fs_usage | grep my.cnf
Это будет сообщать в реальном времени о любой активности файловой системы, связанной с этим файлом.
В другом Терминале перезапустите MySQL / MariaDB, например
brew services restart mysql
или:
brew services restart mariadb
На терминале fs_usage
должно быть показано правильное расположение, например
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
Так что, если файл не существует, создайте его.
sudo fs_usage | grep my.cnf
метод является достаточно эффективным. Я нахожу этот файл в папке: /usr/local/etc/my.cnf
private/etc/my.cnf
, /usr/local/etc/my.cnf
, /usr/local/Cellar/mysql/<myVersion>/my.cnf
, ~.my.cnf
с my_print_def
в правой колонке. Потом через некоторое время только /usr/local/etc/my.cnf
мой терминал в правом столбце. Но всех этих my.cnf
файлов не существует!
Я не знаю, какую версию MySQL вы используете, но вот возможные местоположения файла my.cnf для версии 5.5 (взятого отсюда ) в Mac OS X:
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
(файл, указанный с помощью --defaults-extra-file=path
, если есть)~/.my.cnf
Если вы используете macOS Sierra и файл не существует, запустите
mysql --help or mysql --help | grep my.cnf
чтобы увидеть возможные местоположения и последовательность загрузки / чтения my.cnf для mysql, затем создайте файл my.cnf в одном из предложенных каталогов, затем добавьте следующую строку
[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
sudo touch /{preferred-path}/my.cnf
Затем вы можете отредактировать файл, чтобы добавить режим sql,
sudo nano /{preferred-path}/my.cnf
Затем перезапустите mysql, вуаля, все готово. счастливое кодирование
Для MySQL 5.7 в Mac OS X El Capitan: /usr/local/mysql/etc/my.cnf
Копировать конфигурацию по умолчанию из /usr/local/mysql/support-files/my-default.cnf
Текущий пакет MySQL для Mac OS X Mavericks (MySQL-5.6.17-osx10.7-x86_64 на момент написания этой статьи) автоматически создает my.cnf во время установки.
Он находится в /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
разделе Адаптируйте свой путь в соответствии с вашей версией.
Так что ничего из этого у меня не сработало. Я использую текущую установку dmg сервера сообщества mysql. ps показывает, что все наиболее важные параметры обычно в my.cnf передаются в командной строке, и я не мог понять, откуда это взялось. После полнотекстового поиска в моем окне я нашел его:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
Таким образом, вы можете либо изменить их там, либо удалить, чтобы он действительно уважал те, которые у вас есть в my.cnf, где бы вы ни решили его разместить.
Наслаждайтесь!
Пример информации о файле, найденной в этом файле:
<?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
Вы можете открыть терминал и ввести locate my.cnf
Я запускаю MacOS Catalina (10.15.3) и нахожу my.cnf
в /usr/local/etc
.
Вы можете проверить файл
/usr/local/bin/mysql.server
и посмотрите, откуда my.conf
читают.
Обычно это от /etc/my.cnf
или ~/my.cnf
или~/.my.cnf
~/.my.cnf
. Добавьте точку перед именем файла.
Документы MySQL, для какой версии вы используете, помогут. Обычно его обозначают как Options File
или MySQL Config File
.
В документации указано расположение этих файлов, а также другая VITAL
информация, такая как расположение и небольшие примеры того, как должен выглядеть файл конфигурации.
MySQL версии 5.6 на японском языке
На платформах Unix MySQL игнорирует файлы конфигурации, которые доступны для записи всем.
Это сделано намеренно в качестве меры безопасности.
Другими словами, если в вашем файле конфигурации установлены неправильные разрешения, он НЕ загрузится.
Пример разрешения на первоначальную настройку одного из файлов конфигурации:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
Можно использовать
!include
директивы в файлах параметров для включения других файлов параметров и!includedir
для поиска файлов параметров в определенных каталогах ...... MySQL не гарантирует, в каком порядке будут считываться файлы опций в каталоге ...
Все файлы, которые можно найти и включить с помощью директивы! Includedir в операционных системах Unix, должны иметь имена, оканчивающиеся на
.cnf
. В Windows эта директива проверяет файлы с расширением.ini
или.cnf
.
Примеры того, как найти ваше местоположение вашей конфигурации или файлов журнала и т. Д .:
Это не покажет вам файл конфигурации, но поможет вам найти ваши установочные файлы / папки.
MySQL версии 5.7 и 8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
Версия 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
Авторы вышеупомянутой команды: Эрвин Майер из 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
ИЛИ
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
Если вам понадобится подробный справочный образец my.cnf:
Нет принадлежности / связи с URL
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)
Проверил в macOS Sierra, доморощенный установлен MySql 5.7.12
Файлы поддержки находятся по адресу
/usr/local/opt/mysql/support-files
Просто скопируйте my-default.cnf
как /etc/my.cnf
или, /etc/mysql/my.cnf
и конфигурация будет сохранена при перезапуске.
macOS High Sierra версии 10.13.6
mysql Ver 14.14 Distrib 5.7.22, для osx10.13 (x86_64) с использованием оболочки EditLine Copyright (c) 2000, 2018, Oracle и / или ее дочерние компании. Все права защищены
Параметры по умолчанию считываются из следующих файлов в указанном порядке:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
/private/etc/my.cnf для Каталины
Я использую mysql версии 5.7.17 в macOS High Sierra версии 10.13.3, и я нашел здесь конфигурационный файл mysql.
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
где его заберут, согласно: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.
Для Mac у меня сработало создание файла .my.cnf на моем пути ~. Надеюсь это поможет.
Скопируйте /usr/local/opt/mysql/support-files/my-default.cnf как /etc/my.cnf или /etc/mysql/my.cnf, а затем перезапустите mysql.
В моем случае файла не было. В MySQL Workbench я перешел в ФАЙЛ ОПЦИЙ и нашел некоторые значения по умолчанию. Я нажал «Применить». Он попросил разрешения. Затем он создал файл my.cnf в / etc. Однако очень важно помнить, что при первом нажатии кнопки «Применить» вы не вносите никаких изменений в конфигурацию по умолчанию. После создания файла вы можете вносить изменения, которые будут применены, когда вы нажмете «Применить». В противном случае вам не будет отображаться кнопка «Применить» при внесении изменений.
/etc/mysql/my.cnf
но MySQL Workbench об этом не знает. Вместо этого он жалуется, что файл конфигурации с пустым путем не может быть найден, а затем предлагает создать новый файл.
После версии MySQL 5.7.18 он не предоставляет файл конфигурации по умолчанию в каталоге файлов поддержки. Таким образом, вы можете создать файл my.cnf вручную в том месте, где MySQL будет читать, например /etc/mysql/my.cnf, и добавить конфигурацию, которую вы хотите добавить в файл.
Параметры rDefault считываются из следующих файлов в указанном порядке: /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf
Я использую MacOS Mojave (10.14.6), и чтобы MySQL распознал мой файл конфигурации, мне пришлось поместить его в /usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnf. Также у меня есть символическая ссылка, указывающая на него из /usr/local/@mysql/etc/my.cnf.
Я пытался отключить sql_mode = only_full_group_by, и установка этой опции в конфигурационном файле была единственным способом сохранить эту настройку во всех сессиях. Содержимое файла конфигурации:
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
Я использую встроенную установку MySQL, а не Homebrew.
Для mysql 8.0.19 я наконец нашел my.cnf здесь: /usr/local/opt/mysql/.bottle/etc Я скопировал его в / usr / local / opt / mysql / и изменил его. Затем перезапускаю службу mysql, она работает.