macOS에서 my.cnf 파일의 위치


185

이 자습서 를 따라 MySQL에 원격으로 액세스 하려고합니다 . 문제는 my.cnf파일을 어디에 배치해야 하는가입니다. Mac OS X Lion을 사용하고 있습니다.


나는 이것이 serverfault.com에 속한다고 생각합니다. 그러나 여전히, SO에 오신 것을 환영합니다!
Artefact2

답변:


253

MySQL 포럼 의이 스레드 는 말합니다 :

기본적으로 OS X 설치는 my.cnf를 사용하지 않으며 MySQL은 기본값을 사용합니다. 자신의 my.cnf를 설정하려면 / etc에 바로 파일을 만들면됩니다.

OS X는에서 구성 파일 예제를 제공합니다 /usr/local/mysql/support-files/.

그리고 거기에서 찾을 수 없다면, MySQLWorkbench는 다음을 통해이를 생성 할 수 있습니다.

  1. 연결 열기
  2. 메뉴의 'INSTANCE'에서 'Options File'을 선택하십시오.
  3. MySQLWorkbench가 my.cnf를 검색하고 찾을 수없는 경우이를 생성합니다.

14
적어도 Mac 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에 있습니다
Jpsy

104
mysql이 실제로 my.cnf편집하고있는 파일로 로드되는지 확인하고 싶을 것입니다.mysql --verbose --help | grep my.cnf
ryantuck

3
Mac OS Sierra에서는 아직 설정되지 않았습니다. 동일한 디렉토리에서 /usr/local/mysql/support-files/my-default.cnf를 my.cnf로 복사해야했습니다. mysql은 패키지, mysql-5.7.17-macos10.12-x86_64로 심볼릭 링크되어 있습니다.
Christia

17
dev.mysql.com의 .dmg를 사용하여 Mac OS 10.12에서 MySQL 5.7.19를 새로 설치했습니다. mysql --help가 보이는 곳에는 my.cnf가 없으며 / usr / local / mysql / support-files / 또는 내가 찾은 곳에는 my-default.cnf가 없습니다. "MySQL 5.7.18부터 my-default.cnf는 더 이상 배포 패키지에 포함되거나 배포 패키지에 의해 설치되지 않음" 이 밝혀졌습니다 .
Chris Bartley

2
이 답변은 오래되었으며 mysql을 설치하는 데 사용한 설치 프로그램에 따라 다릅니다. Homebrew는 그것을 한 곳에두고, dmg 인스톨러는 그것을 다른 곳에
slashdottir

79

MySQL이 Homebrew를 통해 설치 될 때 Mac OS X Maverick의 경우 /usr/local/opt/mysql/my.cnf


6
이것은 /usr/local/Cellar/yourMySqlVersion/my.cnf
m02ph3u5

/ usr / 지방 / 옵션 / mariadb / 버전 VERSIONNUMBER / 내 경우에는 MariaDB가 설치됩니다
스티븐 Lizarazo

9
내 /usr/local/etc/my.cnf에 있습니다
Steve Tauber

1
내했다 /usr/local/mysql/etc. 나는 High Sierra에 있지만 몇 가지 버전으로 다시 설치되었습니다.
Joshua Pinter

당신은 생명의 은인입니다
Ishan 스리 바스타

56

일반적으로 Unix 및 Unix 계열 시스템에서 MySQL / MariaDB 프로그램은 다음 위치에서 지정된 순서대로 구성 / 시작 파일을 읽습니다.

  • /etc/my.cnf -글로벌
  • /etc/mysql/my.cnf -글로벌
  • SYSCONFDIR/my.cnf -글로벌

    SYSCONFDIRMySQL을 빌드 할 때 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에서는 간단한 확인 방법이 있습니다.

  1. 운영: sudo fs_usage | grep my.cnf

    그러면 해당 파일과 관련된 모든 파일 시스템 활동이 실시간으로보고됩니다.

  2. 다른 터미널에서 MySQL / MariaDB를 다시 시작하십시오.

    brew services restart mysql

    또는:

    brew services restart mariadb
  3. 로 터미널에 fs_usage올바른 위치가 표시되어야합니다. 예 :

    15:52:22  access            /usr/local/Cellar/mariadb/10.1.14/my.cnf                                         0.000002   sh          

    따라서 파일이 존재하지 않으면 파일을 작성하십시오.


6
감사! 이 sudo fs_usage | grep my.cnf방법은 매우 효율적입니다. 폴더에서이 파일을 찾습니다 : /usr/local/etc/my.cnf
gary

3
다양한 방법 그러나 내가 거기에 몇 가지 결과를 얻을 : private/etc/my.cnf, /usr/local/etc/my.cnf, /usr/local/Cellar/mysql/<myVersion>/my.cnf, ~.my.cnfmy_print_def가장 오른쪽 열입니다. 그런 다음 잠시 후 맨 /usr/local/etc/my.cnf오른쪽 열에 터미널이 있습니다. 그러나이 my.cnf파일들 모두가 존재하지 않습니다!
Andru

@Andru 존재하지 않는 경우 새로 만듭니다.
kenorb

1
마지막 지침 세트는 sudo fs_usage | grep my.cnf는 mysqld가 mysql-?을 통해 나열된 기본 위치에서로드되지 않는 이유를 알 수 없기 때문에이 페이지에서 도움이 된 유일한 것입니다.
redbirdo

1
해당 명령 sudo fs_usage | grep my.cnf가 하루를 구했습니다. 감사합니다.
Shashikant Soni

33

사용중인 MySQL의 버전을 모르지만 Mac OS X 에서 버전 5.5 ( 여기 에서 가져온 )에 대한 my.cnf 파일의 가능한 위치는 다음과 같습니다.

  1. /etc/my.cnf
  2. /etc/mysql/my.cnf
  3. SYSCONFDIR/my.cnf
  4. $MYSQL_HOME/my.cnf
  5. defaults-extra-file(있는 경우로 지정된 파일 --defaults-extra-file=path)
  6. ~/.my.cnf

21

Mac OS X El Capitan의 MySQL 5.7 : /usr/local/mysql/etc/my.cnf

에서 기본 conf 복사 /usr/local/mysql/support-files/my-default.cnf


4
명확하게하기 위해서, 당신은 "etc /"폴더를 직접 만들어야하고 그 "sudo su-"에 대한 루트 권한이 필요합니다
trojan

해당 위치에서 찾을 수 없습니다. MAMP를 사용하고 있습니다
Mirza Vu


21

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을 다시 시작하십시오. 행복한 코딩


13

맥 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
버전에 따라 경로를 적응.


12

그래서 이런 것들 중 어느 것도 나를 위해 일하지 않았습니다. 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>

큰! 당신은 내 하루를 구했다.
jenny

저도 같은 경우가 있었다, 그러나 나는 또한에의 my.cnf 파일을 추가했다/etc/my.cnf
에드워드 Mukans

11

당신은 터미널을 열고 입력 할 수 있습니다 locate my.cnf


구체적으로 말해서 미안하지만 분명히 'my-large.cnf'를 일부 폴더에 복사하고 이름을 'my.cnf'로 바꿔야합니다. 그러나 나는 어디에 있는지 모른다 ..
nicolas

1
또한 채워진 locate db가 있어야합니다. Mac OSX : sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.locate.plist
arcseldon

10

Homebrew에서 설치 한 mysql 5.6.22에서 my.cnf의 경로는 다음과 같습니다.

/usr/local/opt/mysql/my.cnf 

10

macOs sierra 10.12.6 mysql 버전 : 5.7.18_1 find my.cnf를 실행 하면 경로는 다음과 같습니다.

/usr/local/etc/my.cnf

도움이되기를 바랍니다.


asnwer에 설명을 추가하는 것을 고려하십시오
Inder

@ charles.cc.hsu : locate my.cnf터미널에서 명령 을 사용해보십시오 . 결과는 어떻습니까?
aginanjar

6

원하는 디렉토리에 파일을 만들 수 있습니다. 생성 후, 당신은 mysql 설정의 경로를 "알 수있다":

여기에 이미지 설명을 입력하십시오


6

파일을 확인할 수 있습니다

/usr/local/bin/mysql.server어디 my.conf에서 읽고 있는지 참조하십시오 .

보통은 출신 /etc/my.cnf이나 ~/my.cnf또는~/.my.cnf


수정 : ~/.my.cnf. 파일 이름 앞에 점을 추가하십시오.
undefined

5

MAMP 3.5 Mac El Capitan의 경우 별도의 빈 구성 파일을 작성하고 mysql에 대한 추가 설정을 작성하십시오.

sudo vim /Applications/MAMP/Library/my.cnf

그리고 이런 식으로 추가

[mysqld]
max_allowed_packet = 256M


4

문서를 읽으십시오!

사용중인 버전에 대한 MySQL 문서가 도움이 될 것입니다. 일반적으로 Options File또는 로 설명됩니다 MySQL Config File.
문서에는 문서에서 이러한 파일 VITAL의 위치와 구성 파일의 모양 및 위치와 같은 다른 정보가 있습니다.

MySQL 버전 8

MySQL 버전 5.7

MySQL 버전 5.6

MySQL 버전 5.5

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은 디렉토리의 옵션 파일을 읽는 순서에 대해 보증하지 않습니다 ...

Unix 운영 체제에서! includedir 지시문을 사용하여 찾아서 포함 할 파일은 파일 이름이로 끝나야 .cnf합니다. Windows에서이 지정 문은 .ini또는 .cnf확장자를 가진 파일을 확인 합니다.

구성 또는 로그 파일의 위치를 ​​찾는 방법의 예 :

SQL

구성 파일은 표시되지 않지만 설치 파일 / 폴더를 찾는 데 도움이됩니다.

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가 필요한 경우 :

  1. https://gist.github.com/search?utf8=%E2%9C%93&q=my.cnf+mysql&ref=searchresults
  2. https://www.linode.com/community/questions/5749/mysql-sample-config-files
  3. https://www.fromdual.com/mysql-configuration-file-sample

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)

mysql --help | grep "기본 옵션"-A 1. 도움이되었습니다.
방랑자

4

MacOS Catalina (10.15.3)를 실행 중이며 my.cnf에서 찾을 수 있습니다 /usr/local/etc.


2

homebrew가 설치된 macOS Sierra에서 체크인했습니다. MySql 5.7.12

지원 파일은 다음 위치에 있습니다.

/usr/local/opt/mysql/support-files

또는으로 복사 my-default.cnf하면 다시 시작할 때 구성이 선택됩니다./etc/my.cnf/etc/mysql/my.cnf


4
방금 homebrew를 통해 12.12.4에 5.7.18을 설치했지만 거기에 없습니다.
norman_h

2

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


1

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.
Joshua Pinter

1

/usr/local/etc당신이 그것을 찾을 수 없다면 그것을 찾을 수 없다면 그것은 일반적 으로 맥에 있어야합니다


0

Mac의 경우 나를 위해 일한 것은 ~ 경로에 .my.cnf 파일을 만드는 것입니다. 도움이 되었기를 바랍니다.


0

/usr/local/opt/mysql/support-files/my-default.cnf를 /etc/my.cnf 또는 /etc/mysql/my.cnf로 복사 한 다음 mysql을 다시 시작하십시오.


0

시에라 버전의 나를 위해

기본 구성을 다음 위치에 복사하십시오.

/usr/local/Cellar/mysql/5.6.27/support-files/my-default.cnf

/usr/local/Cellar/mysql/5.6.27/my.cnf


0

제 경우에는 파일이 존재하지 않았습니다. MySQL Workbench에서 OPTIONS FILE로 가서 기본값을 찾았습니다. 적용을 클릭했습니다. 허가를 요청했다. 그런 다음 / etc 아래에 my.cnf 파일을 작성했습니다. 그러나 "적용"을 처음 클릭하면 기본 구성을 변경하지 않는다는 점을 명심해야합니다. 파일이 작성되면 "적용"을 클릭 할 때 적용될 변경 사항을 작성할 수 있습니다. 그렇지 않으면 변경시 적용 단추가 표시되지 않습니다.


옵션 파일이 /etc/mysql/my.cnf있지만 MySQL Workbench가 인식하지 못합니다. 대신, 경로가 비어있는 구성 파일을 찾을 수 없다고 불평 한 다음 새 파일을 작성하도록 제안합니다.
Alan Snyder

0

MySQL 5.7.18 버전 이후에는 support-files 디렉토리에 기본 구성 파일이 제공되지 않습니다. 따라서 /etc/mysql/my.cnf와 같이 MySQL을 읽을 위치에 my.cnf 파일을 수동으로 생성하고 파일에 추가 할 구성을 추가 할 수 있습니다.


0

r 기본 옵션은 주어진 순서대로 다음 파일에서 읽습니다. /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~ / .my.cnf


0

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의 기본 설치를 사용하고 있습니다.


0

mysql 8.0.19의 경우 마침내 my.cnf를 /usr/local/opt/mysql/.bottle/etc에서 찾았습니다 ./usr/local/opt/mysql/에 복사하여 수정했습니다. 그런 다음 mysql 서비스를 다시 시작하면 작동합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.