私はFreeBSD 9.2サーバーで作業しており、mysqltuner.pl
を実行して、MySQLのメモリとキャッシュの必要性をチェックしています。次に、my.cnf
ファイルをFreeBSDに追加して、auto cnf
ファイルの代わりにそれを使用する必要があります。
このようにmy-default.cnf
をコピーできます:
cp /usr/local/share/mysql/my-default.cnf /usr/local/etc/my.cnf
次にmy.cnf
が読み込まれます。
my-default.cnf
ファイルには、次の値が表示されます(my.cnf
に引き継がれます):
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
# *the above innodb line I can set*
# *But where do I get the values below?*
# These are commonly set, remove the # and set as required.
# basedir = .....
# datadir = .....
# port = .....
# server_id = .....
# socket = .....
上記の値はどこで取得できますか?現在のMySQLサーバーから取得する必要があることはわかっていますが、これらの設定をどのようにして見つけることができますか?
この質問は https://dba.stackexchange.com/ ?にありますか?
Mysqlにログインしてクエリを実行すると、current構成を取得できます
SHOW VARIABLES;
特定の構成を検索するには、SQL構文を使用できます。たとえば、現在のdatadirの使用を知るには:
SHOW VARIABLES LIKE '%datadir%';
リファレンス: MySQLの公式ドキュメント
私はこの投稿が数年前のものであり、FreeBSD 9.2(実際にはバージョン11.1、2017年11月現在)から多くの変更があったことを知っています。my.cnfファイルは次の場所にあります。
/usr/local/etc/mysql
FreeBSDのポートとしてビルドされたmysqlにほとんどコンパイルされないため、一般にこれらのパラメーターを定義する必要はありません。 DBエンジンの調整を担当するパラメーターを変更する必要があります。
これが私の設定の例です
[client]
port = *****
[mysqld]
port = *****
skip-external-locking
key_buffer_size = 128M
max_allowed_packet = 1M
table_open_cache = 512
join_buffer_size = 2M
sort_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 32M
query_cache_limit = 2M
query_cache_size = 32M
thread_cache_size = 4
thread_concurrency = 8
event-scheduler = ON
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
私が変更したのは、愚かなh4xorが標準の3306をノックするのを避けるためのtcpポートです。