MySQLとは何ですか?
MySQLは、高速で信頼性が高く、スケーラブルで、使いやすいオープンソースのリレーショナルデータベースシステムです。Oracleに支えられています。 MySQLサーバーは、ミッションクリティカルで高負荷の本番アプリケーションを処理するように設計されています。WebサイトまたはWebアプリケーションを開発する場合は、MySQLが適しています。 MySQLは、Linux、Apache、MySQL、およびPHPを含むLAMPスタックの重要なコンポーネントです。
BitnamiMySQLスタックを使用する理由
Bitnami MySQLスタックは、常に最新で安全です。スタックのインストールと構成は完全に自動化されているため、あまり技術的でない人も含め、誰でも簡単にスタックを起動して実行できます。
BitnamiMySQLチュートリアルとドキュメント
- BitnamiMySQLページ
- BitnamiMySQLユーザーガイド
- BitnamiMySQL変更ログ
- MySQLデータベースとユーザーを作成するには
- MySQL管理者パスワードを変更するには
- MySQLを保護するには
- MySQLバックアップのダンプと復元を実行するには
- MySQLWorkbenchを構成するには
- MySQLログファイルを確認するには
MySQLルートクレデンシャルはどこにありますか?
インスタンス/ノード/マシンのルートクレデンシャルは、MySQLインスタンスが起動されるとすぐに、登録された電子メールアドレスに送信されます。
MySQLクレデンシャルはスタンドアロンファイルに保存されます。いつでも資格情報を取得するには、次の手順に従います。
- rootを使用してSSH経由でインスタンス/ノード/マシンに接続します ユーザーの資格情報。
- 次のコマンドを実行して、アプリケーションのクレデンシャルを取得します。
cat /home/bitnami/bitnami_credentials
注:MySQLユーザーがrootの場合、上記からパスワードのみをコピーしてください
UFWファイアウォールを使用してMySQL3306ポートを開く方法
デフォルトでは、BitnamiMySQLポートはローカルホストでのみアクセスできるように構成されています。開いているインターネットまたは特定のIPアドレスに対してのみMySQLポートを開くには、以下の手順に従ってください。
1. rootを使用してSSH経由でインスタンス/ノード/マシンに接続します ユーザーの資格情報。
セキュリティリスク :このデータベースネットワークをパブリックインターネットに移植することは、重大なセキュリティリスクです。 MySQLポートを信頼できるIPアドレスのみに開くことを強くお勧めします。
2(a)次のコマンドを実行して、インターネットへのポートを開きます。
ufw allow mysql/tcp
2(b)次のコマンドを実行して、特定のIPアドレスへのポートを開きます
ufw allow from IPADDRESS to any port 3306 proto tcp
MySQLデータベースに接続するにはどうすればよいですか?
- rootを使用してSSH経由でインスタンス/ノード/マシンに接続します ユーザーの資格情報。
ssh root@<public IP>
- 次のコマンドを実行してmysqlデータベースにログインします
# mysql -u root -p
ルートを入力するように求められます ユーザーのパスワード…
リモートIPアドレスMYSQLアクセスを許可する方法
デフォルトでは、MySQLはリモートクライアントがMySQLデータベースに接続することを許可していません。サーバーのMYSQLデータベースにリモートでアクセスしようとしている場合、次のような応答が返されることは明らかです。
“ERROR 1130: Host is not allowed to connect to this MySQL server”
Example:
$ mysql -h XXX.168.X.8 -u root -p
Enter password:
ERROR 1130: Host 'xxx.xx.x.x' is not allowed to connect to this MySQL server
解決策 :
このエラーを解決するために、特定のクライアントに
$ /opt/bitnami/mysql/bin/mysql -u root -p
Enter password:
mysql> use mysql
mysql> GRANT ALL ON *.* to root@'XXX.XXX.X.X' IDENTIFIED BY 'your-root-password';
mysql> FLUSH PRIVILEGES;
上記の例の「XXX.XXX.X.X」を、「your-root-password」の代わりにstatic-Ipとrootパスワードに置き換えます。
注:これは、静的IPベースのサービスでインターネットを実行している場合にのみ機能します。
静的IPアドレスは、インターネットサービスプロバイダー(ISP)によってコンピューターに割り当てられ、インターネット上の永続的なアドレスとなる番号です。
上記のコマンドを実行すると、MYSQLにリモートアクセスできる特定の静的IPへのアクセスが許可されます。
また、ファイアウォールルールを更新して、UFWのポート#3306が、
MySQLTunerを使用してMySQLパフォーマンスを最適化する方法
MySQLの最適化に役立つツール:
MySQLデータベースを再構成する必要があるかどうかを判断するには、リソースの現在のパフォーマンスを確認するのが最善です。これは、topコマンドまたはE2Eの監視サービスを使用して実行できます。少なくとも、サーバーのRAMとCPUの使用量に精通している必要があります。これは、次のコマンドで検出できます。
#echo [PID] [MEM] [PATH] && ps aux | awk '{print $2, $4, $11}' | sort -k2rn | head -n 20
#ps -eo pcpu,pid,user,args | sort -k 1 -r | head -20
MySQLTuner:
MySQLTunerスクリプトは、MySQLを評価します
-
mysqltuner をインストールするには 、mysqltuner をダウンロードします .plスクリプト。たとえば、wget を使用してダウンロードできます。 :
#wget https://raw.github.com/rackerhacker/MySQLTuner-perl/master/mysqltuner.pl
- BitnamiスタックによってインストールされたMySQLサーバーを監視するには、以下に示すように、コマンドラインを介して接続値を渡します。システムにPerlをインストールする必要があることに注意してください。
#perl mysqltuner.pl --socket /opt/bitnami/mysql/tmp/mysql.sock
- スクリプトは、以下の出力のような結果を返します。
MySQLTunerは、データベースのパフォーマンスを向上させる方法に関する提案を提供します。データベースを自分で更新することに慎重な場合は、MySQLTunerの提案に従うことが、データベースのパフォーマンスを向上させるためのより安全な方法の1つです。
MySQLの調整:
MySQL構成を変更するときは、変更とそれがデータベースに与える影響に注意してください。 MySQLTunerなどのプログラムの指示に従う場合でも、プロセスをある程度理解しておくことをお勧めします。
次の場所に保存されているBitnamiMySQL構成ファイル:/opt/bitnami/mysql/my.cnf。
注:MySQL構成を更新する前に、
# cp /opt/bitnami/mysql/my.cnf ~/my.cnf.backup
ベストプラクティスでは、一度に1つずつ変更を加え、変更するたびにサーバーを監視することをお勧めします。変更するたびにMySQLを再起動する必要があります。
サーバーを再起動します:
# /opt/bitnami/ctlscript.sh restart mysql
my.cnfファイルの値を変更するときは、変更する行がポンド(#)プレフィックスでコメントアウトされていないことを確認してください。
key_buffer
key_bufferを変更すると、MySQLにより多くのメモリが割り当てられます。これにより、メモリが空いていると仮定すると、データベースの速度が大幅に向上します。 key_bufferサイズは、通常、MyISAMテーブルエンジンを使用する場合はシステムメモリの25%以下、InnoDBの場合は最大70%を占める必要があります。値の設定が高すぎると、リソースが無駄になります。
MySQLのドキュメントによると、多くのテーブルを備えた256MB(またはそれ以上)のRAMを搭載したサーバーの場合、64Mの設定が推奨されます。 128MBのRAMと少数のテーブルを備えたサーバーは、デフォルト値である16Mに設定できます。リソースとテーブルがさらに少ないWebサイトでは、この値を低く設定できます。
max_allowed_packet
このパラメーターを使用すると、送信可能なパケットの最大サイズを設定できます。パケットは、単一のSQL状態、クライアントに送信される単一の行、またはマスターからスレーブに送信されるログです。 MySQLサーバーが大きなパケットを処理することがわかっている場合は、これを最大のパケットのサイズに増やすのが最善です。この値の設定が小さすぎると、エラーログにエラーが記録されます。
thread_stack
この値には、各スレッドのスタックサイズが含まれます。 MySQLは、thread_stack変数のデフォルト値が通常の使用に十分であると見なします。ただし、thread_stackに関連するエラーがログに記録される場合は、これを増やすことができます。
thread_cache_size
thread_cache_sizeが「オフ」(0に設定)の場合、新しい接続を確立するには、そのために新しいスレッドを作成する必要があります。接続が切断されると、スレッドは破棄されます。それ以外の場合、この値は、接続に使用する必要があるまでキャッシュに格納する未使用のスレッドの数を設定します。通常、この設定は、1分あたり数百の接続を受信している場合を除いて、パフォーマンスにほとんど影響しません。この場合、接続の大部分をキャッシュスレッドで確立できるように、この値を増やす必要があります。
InnoDBバッファープール
InnoDBバッファープールは、InnoDBの多くのメモリ内データ構造、バッファー、キャッシュ、インデックス、さらには行データを保持するメモリスペースです。 innodb_buffer_pool_sizeは、MySQLによってInnoDBバッファープールに割り当てられるメモリの量を指定するMySQL構成パラメーターです。これは、MySQLホスティング構成で最も重要な設定の1つであり、使用可能なシステムRAMに基づいて構成する必要があります。
80%は、おそらく素晴らしいスタートであり、経験則です。サーバーにOS用の十分な空きRAMと、通常は不明なワークロードがあることを確認する必要があります。ただし、以下に示すように、サーバーが大きいほど、ルールがRAMを浪費する可能性が高くなります。ほとんどの人にとって、それは経験則で開始および終了すると思います。これは主に、InnoDBバッファープールを変更するには、現在のリリースで再起動が必要なためです。
80%のルールが残っているRAMを含む合計サーバーRAMバッファプール
1G 800MB 200MB
16G 13G 3G
32G 26G 6G
64G 51G 13G
128G 102G 26G
256G 205G 51G
512G 409G 103G
1024G 819G 205G
では、より良い経験則は何ですか?私のルールは、システムが本番ワークロードを実行しているときに、スワップを使用せずにinnodb_buffer_pool_sizeをできるだけ大きく調整することです。これは原則的には良いように聞こえますが、繰り返しになりますが、再起動が必要であり、言うのは簡単かもしれません。
max_connections
このパラメーターは、同時接続の最大数を設定します。この数を設定する前に、過去に行った接続の最大数を検討することをお勧めします。そのため、その上限数とmax_connections値の間にバッファーがあります。これは、一度にWebサイトのユーザーの最大数を示すものではないことに注意してください。むしろ、同時にリクエストを行うユーザーの最大数を示しています。
table_cache
この値は、open_tablesの値よりも高く保つ必要があります。この値を決定するには、次を使用します。
「open%」のようなステータスを表示します;