답변:
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
MySQL이 Homebrew를 통해 설치 될 때 Mac OS X Maverick의 경우 /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
MySQL을 빌드 할 때SYSCONFDIR
옵션으로 지정된 디렉토리를 나타냅니다CMake
. 기본적으로이 디렉토리는 컴파일 된 설치 디렉토리 아래에있는 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
파일들 모두가 존재하지 않습니다!
Mac OS X El Capitan의 MySQL 5.7 : /usr/local/mysql/etc/my.cnf
에서 기본 conf 복사 /usr/local/mysql/support-files/my-default.cnf
macOS Sierra를 사용 중이고 파일이 존재하지 않으면 다음을 실행하십시오.
mysql --help or mysql --help | grep my.cnf
mysql에 대한 가능한 위치 및로드 / 읽기 my.cnf 순서를 보려면 제안 된 디렉토리 중 하나에 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을 다시 시작하십시오. 행복한 코딩
맥 OS X 매버릭스 현재의 MySQL 패키지 (이 글을 쓰는 시점에서 MySQL을-5.6.17-osx10.7-x86_64의)가 자동으로 설치 중에 my.cnf 파일을 생성합니다.
그것은에 있습니다 /usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
버전에 따라 경로를 적응.
그래서 이런 것들 중 어느 것도 나를 위해 일하지 않았습니다. mysql 커뮤니티 서버의 현재 dmg 설치를 사용하고 있습니다. 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
파일을 확인할 수 있습니다
/usr/local/bin/mysql.server
어디 my.conf
에서 읽고 있는지 참조하십시오 .
보통은 출신 /etc/my.cnf
이나 ~/my.cnf
또는~/.my.cnf
~/.my.cnf
. 파일 이름 앞에 점을 추가하십시오.
사용중인 버전에 대한 MySQL 문서가 도움이 될 것입니다. 일반적으로 Options File
또는 로 설명됩니다 MySQL Config File
.
문서에는 문서에서 이러한 파일 VITAL
의 위치와 구성 파일의 모양 및 위치와 같은 다른 정보가 있습니다.
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은 디렉토리의 옵션 파일을 읽는 순서에 대해 보증하지 않습니다 ...
Unix 운영 체제에서! includedir 지시문을 사용하여 찾아서 포함 할 파일은 파일 이름이로 끝나야
.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의 Erwin Mayer
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)
homebrew가 설치된 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, EditLine 래퍼를 사용하는 osx10.13 (x86_64) Copyright (c) 2000, 2018, Oracle 및 / 또는 그 계열사. 판권 소유
지정된 옵션으로 다음 파일에서 기본 옵션을 읽습니다.
/etc/my.cnf
/etc/mysql/my.cnf
/usr/local/etc/my.cnf
~/.my.cnf
macOS High Sierra 버전 10.13.3에서 mysql 버전 5.7.17을 사용하고 있으며 여기에서 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.
제 경우에는 파일이 존재하지 않았습니다. MySQL Workbench에서 OPTIONS FILE로 가서 기본값을 찾았습니다. 적용을 클릭했습니다. 허가를 요청했다. 그런 다음 / etc 아래에 my.cnf 파일을 작성했습니다. 그러나 "적용"을 처음 클릭하면 기본 구성을 변경하지 않는다는 점을 명심해야합니다. 파일이 작성되면 "적용"을 클릭 할 때 적용될 변경 사항을 작성할 수 있습니다. 그렇지 않으면 변경시 적용 단추가 표시되지 않습니다.
/etc/mysql/my.cnf
있지만 MySQL Workbench가 인식하지 못합니다. 대신, 경로가 비어있는 구성 파일을 찾을 수 없다고 불평 한 다음 새 파일을 작성하도록 제안합니다.
r 기본 옵션은 주어진 순서대로 다음 파일에서 읽습니다. /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
Homebrew 설정이 아닌 MySQL의 기본 설치를 사용하고 있습니다.
mysql 8.0.19의 경우 마침내 my.cnf를 /usr/local/opt/mysql/.bottle/etc에서 찾았습니다 ./usr/local/opt/mysql/에 복사하여 수정했습니다. 그런 다음 mysql 서비스를 다시 시작하면 작동합니다.