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. メニューの「インスタンス」の下にある「オプションファイル」を選択します。
  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です。
クリスティ

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 2017

2
この回答は古く、mysqlのインストールに使用したインストーラーによって異なります。Homebrewが1つの場所に配置し、dmgインストーラが別の場所に配置
slashdottir 2018

79

Mac OS X Maverickの場合、MySQLをHomebrew経由でインストールすると、次の場所に配置されます。 /usr/local/opt/mysql/my.cnf


6
/usr/local/Cellar/yourMySqlVersion/my.cnfこれは
m02ph3u5

/ usr / local / opt / mariadb / VERSIONNUMBER /私の場合、MariaDBがインストールされています
Steven Lizarazo、

9
鉱山は/usr/local/etc/my.cnfにあります
Steve Tauber

1
私はだった/usr/local/mysql/etc。私はハイシエラにいますが、数バージョン前にインストールされていました。
ジョシュアピンター

あなたは命の恩人です
Ishan Srivastava

56

一般に、UnixおよびUnixライクなシステムでは、MySQL / MariaDBプログラムは次の場所にあるconfig / startupファイルを(指定された順序で)読み取ります。

  • /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それらのいずれも存在しない場合は、新しいものを作成します。
ケノーブ2018年

1
最後の一連の指示は、sudo fs_usage | 不明な理由のため、mysqldがmysqlを介してリストされたデフォルトの場所からロードされなかったので、grep my.cnfがこのページで私を助けた唯一のものでした-?
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

からデフォルトの設定をコピー /usr/local/mysql/support-files/my-default.cnf


4
明確にするために、「etc /」フォルダを自分で作成する必要があり、その「sudo su-」のルート権限が必要
です

その場所では見つかりません。私はMAMPを使用しています
Mirza Vu


21

macOS Sierraを使用していて、ファイルが存在しない場合は、次を実行します。

mysql --help or mysql --help | grep my.cnf

mysql用のmy.cnfの可能な場所とロード/読み取りシーケンスを確認するには、提案されたディレクトリの1つに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

Mac OS X Mavericks現在の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>

すごい!あなたは私の日を救った。
ジェニー

同じケースがありましたが、my.cnfファイルも追加する必要がありました/etc/my.cnf
Eduard Mukans '30 / 10/30

11

あなたはターミナルを開いてタイプすることができます locate my.cnf


具体的ではありませんが、「my-large.cnf」をいくつかのフォルダにコピーして「my.cnf」に名前を変更する必要があるようです。しかし、私はどこにいるかはわかりません
。–ニコラス

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 Locate 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。ファイル名の前にドットを追加します。
未定義

5

MAMP 3.5 Mac El Capitanの場合、個別の空の設定ファイルを作成し、mysqlの追加設定を書き込みます

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

そして、このように追加します

[mysqld]
max_allowed_packet = 256M

5

ターミナルを開き、以下のコマンドを使用します:

sudo find / -name my.cnf

4

ドキュメントを読んでください!

使用しているバージョンのMySQLドキュメントが役立ちます。通常、Options Fileまたはとして記述されMySQL Config Fileます。
ドキュメントには、ドキュメント内のこれらのファイルの場所と、その他の場所がありますVITALの場所、および場所などの情報と、構成ファイルがどのように見える必要があるかの小さな例があります。

MySQLバージョン8

MySQLバージョン5.7

MySQLバージョン5.6

MySQLバージョン5.5

MySQLバージョン5.6日本語

重要なメモ:

Unixプラットフォームでは、MySQLは誰でも書き込み可能な構成ファイルを無視します。

これは、セキュリティ対策として意図的なものです。

言い換えると、設定ファイルに間違った権限が設定されていると、ロードされません。

構成ファイルの1つの初期セットアップ許可の例:

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拡張子がorのファイルをチェックします。

設定ファイルやログファイルなどの場所を見つける方法の例:

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。これは役に立ちました。
wandermonk


2

インストールされている自作のmacOS Sierraにチェックインしました MySql 5.7.12

サポートファイルは次の場所にあります

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

またはmy-default.cnfとしてコピーするだけで、再起動時に構成が取得されます。/etc/my.cnf/etc/mysql/my.cnf


4
12.12.4にhome.brewを介して5.7.18をインストールしましたが、そこにはありません。
norman_h 2017

2

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


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.
ジョシュアピンター

1

それが/usr/local/etc見つからない場合は、通常、Mac上で作成します。


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はそれを認識していません。代わりに、パスが空の構成ファイルが見つからないというメッセージが表示され、新しいファイルの作成が提案されます。
アランスナイダー

0

MySQLの5.7.18バージョンの後、それはsupport-filesディレクトリにデフォルトの設定ファイルを提供しません。そのため、MySQLが/etc/mysql/my.cnfのように読み取る場所に手動でmy.cnfファイルを作成し、ファイルに追加する構成を追加できます。


0

rDefaultオプションは、次のファイルから指定された順序で読み取られます。/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.