このチュートリアルに従って、MySQL へのリモート アクセスを有効にしようとしています。問題は、my.cnf
ファイルをどこに置くべきかということです。Mac OS X Lion を使用しています。
31 に答える
MySQL フォーラムのこのスレッドには、次のように書かれています。
デフォルトでは、OS X インストールは my.cnf を使用せず、MySQL はデフォルト値のみを使用します。独自の my.cnf を設定するには、/etc に直接ファイルを作成するだけです。
OS X では、構成ファイルの例が で提供されています/usr/local/mysql/support-files/
。
そこで見つからない場合は、MySQLWorkbench が次の方法で作成できます。
- 接続を開く
- メニューの「INSTANCE」の下にある「Options File」を選択します。
- MySQLWorkbench は my.cnf を検索し、見つからない場合は作成します
一般に、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
を使用してサーバーを起動する場合は、MySQL ベース インストール ディレクトリであるに設定します。mysqld_safe
mysqld_safe
BASEDIR
--defaults-extra-file=path
if anyで指定されたファイル~/.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
したがって、ファイルが存在しない場合は作成します。
使用している MySQL のバージョンはわかりませんが、Mac OS Xのバージョン 5.5 (ここから取得) の my.cnf ファイルの可能な場所は次のとおりです。
/etc/my.cnf
/etc/mysql/my.cnf
SYSCONFDIR/my.cnf
$MYSQL_HOME/my.cnf
defaults-extra-file
( で指定されたファイルが--defaults-extra-file=path
ある場合)~/.my.cnf
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
バージョンに応じてパスを調整します。
macOS sierra 10.12.6
MySQL バージョン: 5.7.18_1locate my.cnf
を実行すると、パスは次のようになります。
/usr/local/etc/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>
ターミナルを開いて入力できますlocate my.cnf
Homebrew からインストールした mysql 5.6.22 では、my.cnf のパスは
/usr/local/opt/mysql/my.cnf
ファイルを確認できます
/usr/local/bin/mysql.server
どこからmy.conf
読み取られているかを確認します。
通常、/etc/my.cnf
または~/my.cnf
またはからです。~/.my.cnf
MAMP 3.5 Mac El Capitan の場合、別の空の構成ファイルを作成し、mysql の追加設定を記述します。
sudo vim /Applications/MAMP/Library/my.cnf
そして、このように追加します
[mysqld]
max_allowed_packet = 256M
Mac の場合、私にとってうまくいったのは、 ~ パスに .my.cnf ファイルを作成することです。お役に立てれば。
rDefault オプションは、指定された順序で次のファイルから読み取られます。 /etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf