序文 MySQL に関する私の理解に基づくと、パフォーマンスの最適化作業やマスター スレーブ レプリケーションの多くは、さまざまな期間のさまざまな桁のデータに適応するためにパラメータを調整することであると考えています。 したがって、my.cnf 内のパラメータを完全に理解することは永遠のテーマであり、パラメータ設定を完全に理解することによってのみ、特定の側面でデータベースを調整できるようになります。 数日前に MySQL データベースを引き継ぎました。オペレーティング システムは Ubuntu 16.04.5 LTS、データベース バージョンは 5.7.23-0ubuntu0.16.04.1 (APT によってインストールされた MySQL) です。このオペレーティング システムでの MySQL 構成ファイル my.cnf については、少し違和感を感じる点が数多くあります (これは、以前 RHEL や CentOS などのオペレーティング システム環境で MySQL を保守していた以前の MySQL 環境とは多少異なります)。 そこで、少し調べてまとめてみました。詳細は以下の通りです。 root@mylnx12:~# find / -name "my.cnf" /etc/alternatives/my.cnf phpMySQL の mysql.cnf ファイル /var/lib/dpkg/alternatives/my.cnf root@mylnx12:~# my.cnf を探します /etc/alternatives/my.cnf phpMySQL の mysql.cnf ファイル /etc/mysql/my.cnf.fallback /var/lib/dpkg/alternatives/my.cnf root@mylnx12:~# mysql --help | grep my.cnf 優先順位、my.cnf、$MYSQL_TCP_PORT、 /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf root@mylnx12:~# mysqld --verbose --help | grep -A 1 'デフォルトオプション' デフォルト オプションは、指定された順序で次のファイルから読み取られます。 /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf 上記の情報から判断すると、MySQL パラメータ ファイルは /etc/mysql/my.cnf ですが、他の my.cnf ファイルはどうでしょうか? root@mylnx12:~# ls -lrt /etc/alternatives/my.cnf lrwxrwxrwx 1 ルート ルート 20 9月 28 16:28 /etc/alternatives/my.cnf -> /etc/mysql/mysql.cnf 上記の情報から、/etc/alternatives/my.cnf は実際にはパラメータファイル /etc/mysql/mysql.cnf を指すソフトリンクであることがわかります。 root@mylnx12:~# cat /var/lib/dpkg/alternatives/my.cnf 自動車 phpMySQL の mysql.cnf ファイル /etc/mysql/my.cnf.fallback 100 phpMySQL の .cnf ファイル 200 上記の情報だけでは、/var/lib/dpkg/alternatives/my.cnf と他の設定ファイル my.cnf の関係はまだわかりません。次に、パラメータ ファイル /etc/mysql/my.cnf を見てみましょう。次の情報から、「/etc/mysql/my.cnf」はグローバル設定であり、「~/.my.cnf」隠しファイルは個人ユーザー設定であることがわかります。 root@mylnx12:~# cat /etc/mysql/my.cnf # # MySQL データベース サーバーの構成ファイル。 # # これを次のいずれかにコピーできます: # - グローバルオプションを設定するには「/etc/mysql/my.cnf」を使用します。 # - ユーザー固有のオプションを設定するには「~/.my.cnf」を使用します。 # # プログラムがサポートするすべての長いオプションを使用できます。 # 利用可能なオプションの一覧を取得するには、--help でプログラムを実行し、 # --print-defaults を使用すると、実際にどれが理解され使用されるかを確認できます。 # # 説明については # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # # * 重要: このファイルの設定を上書きできる追加の設定! # ファイルは '.cnf' で終わる必要があります。そうでない場合は無視されます。 # !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/mysql.conf.d/ ただし、/etc/mysql/my.cnf パラメータ ファイルの下にはパラメータ設定がありません。次の 2 行の設定のみが表示され、これら 2 つのディレクトリ内の構成ファイルがインポートされていることがわかります。 # は、サフィックスが .cnf である場合に、パス /etc/mysql/conf.d/ の下の設定ファイルが含まれることを示します。 # は、サフィックスが .cnf である場合に、パス /etc/mysql/mysql.conf.d/ の下の設定ファイルが含まれることを示します。 実際、MySQL 関連のすべての設定は、mysqld.cnf (/etc/mysql/mysql.conf.d/mysqld.cnf) の下にあります。関連するパラメータでテストしたところ、動作しました。この種の設定は、確かに初心者にとっては少し不快です。とりあえずのまとめは以上です! root@mylnx12:~# cd /etc/mysql/mysql.conf.d/ root@mylnx12:/etc/mysql/mysql.conf.d# ls -lrt 合計 8 -rw-r--r-- 1 ルート ルート 21 2月 4 2017 mysqld_safe_syslog.cnf -rw-r--r-- 1 ルート ルート 3148 10月 6日 23:34 mysqld.cnf root@mylnx12:/etc/mysql/mysql.conf.d# cat mysqld.cnf # # MySQL データベース サーバーの構成ファイル。 # # これを次のいずれかにコピーできます: # - グローバルオプションを設定するには「/etc/mysql/my.cnf」を使用します。 # - ユーザー固有のオプションを設定するには「~/.my.cnf」を使用します。 # # プログラムがサポートするすべての長いオプションを使用できます。 # 利用可能なオプションの一覧を取得するには、--help でプログラムを実行し、 # --print-defaults を使用すると、実際にどれが理解され使用されるかを確認できます。 # # 説明については # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # これはすべてのmysqlクライアントに渡されます # パスワードは引用符で囲む必要があると報告されています # 特に「#」文字が含まれている場合... # ソケットの場所を変更するときは、必ず /etc/mysql/debian.cnf を編集してください。 # 特定のプログラムのエントリはこちら # 以下の値は、少なくとも32MのRAMがあることを前提としています [mysqld_safe] ソケット = /var/run/mysqld/mysqld.sock いいね = 0 [mysqld] # # * 基本設定 # ユーザー = mysql pid ファイル = /var/run/mysqld/mysqld.pid ソケット = /var/run/mysqld/mysqld.sock ポート = 3306 ベースディレクトリ = /usr データディレクトリ = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /usr/share/mysql 外部ロックをスキップ ログビン = mylnx12_bin サーバーID = 0 文字セットサーバー=utf8mb4 照合サーバー=utf8mb4_general_ci # # スキップネットワークの代わりに、デフォルトでは、 # 互換性が高く、安全性も低い localhost です。 バインドアドレス = 10.21.6.7 # # * 微調整 # キーバッファサイズ = 16M 最大許容パケット = 100M スレッドスタック = 192K スレッドキャッシュサイズ = 8 # これは起動スクリプトを置き換え、必要に応じてMyISAMテーブルをチェックします # 初めて触れたとき myisam-recover-options = バックアップ #最大接続数 = 100 #テーブルキャッシュ = 64 #スレッド同時実行数 = 10 # # * クエリキャッシュ設定 # クエリキャッシュ制限 = 1M クエリキャッシュサイズ = 16M # # * ログとレプリケーション # # 両方の場所は cronjob によってローテーションされます。 # このログ タイプはパフォーマンスを低下させることに注意してください。 # 5.1 以降では実行時にログを有効にすることができます。 #general_log_file = /var/log/mysql/mysql.log #一般ログ = 1 # # エラー ログ - エントリは非常に少ないはずです。 # ログエラー = /var/log/mysql/error.log # # ここでは特に長い期間のクエリを確認できます #log_slow_queries = /var/log/mysql/mysql-slow.log #長いクエリ時間 = 2 #インデックスを使用しないログクエリ # # 以下は、バックアップ ログを簡単に再生したり、レプリケーションに使用したりできます。 # 注意: レプリケーションスレーブを設定する場合は、README.Debianを参照してください。 # その他の設定を変更する必要があるかもしれません。 #サーバーID = 1 #log_bin = /var/log/mysql/mysql-bin.log 有効期限切れログ日数 = 10 最大バイナリログサイズ = 100M #binlog_do_db = データベース名を含める #binlog_ignore_db = 含めるデータベース名 # # * InnoDB # # InnoDB はデフォルトで有効になっており、/var/lib/mysql/ に 10 MB のデータファイルがあります。 # InnoDB 関連のオプションの詳細については、マニュアルをお読みください。たくさんあります。 # # * セキュリティ機能 # # chroot が必要な場合は、マニュアルも読んでください。 # chroot = /var/lib/mysql/ # # SSL 証明書を生成するには、OpenSSL GUI「tinyca」をお勧めします。 # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem #: ssl-key=/etc/mysql/server-key.pem 要約する 上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。 以下もご興味があるかもしれません:
|
<<: Angularコンポーネントの仲介モードの詳細な説明
>>: Dockerを使用してLaravel開発環境を構築するための完全な手順
お使いのコンピュータが Mac の場合、homebrew を使用して MySQL をインストールする...
この例の Web カラー ピッカー機能は、ページ効果を実現するために CSS3 を使用します。つまり...
この記事の例では、テーブルを動的に生成したり行を削除したりするためのJavaScriptの具体的なコ...
そこで、個性的なスタジオやフリーランスを表現する組み合わせを 30 個選びました。デザインを目立たせ...
質問: <form...> の下の <input type="hidde...
IPSec の概要IPSec (インターネット プロトコル セキュリティ): ネットワーク層と適用さ...
この記事では、ネイティブ JS で実装されたドラッグ可能な写真ウォールを紹介します。効果は次のとおり...
目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...
テキストオーバーフローを表示するにはどうすればいいですか? どのようなニーズがありますか?単一行です...
データをコピーリモートでデータをコピーする場合、通常は rsync コマンドを使用しますが、小さなフ...
Ubuntu 17.10 での openssh-server のインストールと使用を記録します。イン...
まず、Docker とは何かを理解しましょう。 Docker は、アプリケーションをデプロイするため...
今日のタスク1. Linuxディストリビューションの選択2.vmwareが仮想マシン(centos)...
私はプロジェクトの展開にAlibaba Cloudから購入したCentOSを使用しています。最近、プ...
yum クイックインストール mysql yumリポジトリを追加する rpm -Uvh http:...