MySQLの概要
概観
- MySQLは、スウェーデンのMySQL AB会社によって開発されたリレーショナルデータベース管理システムであり、現在Oracleに属しています。
- MySQLはリレーショナルデータベース管理システムであり、すべてのデータをウェアハウスに置く代わりに、さまざまなテーブルにデータを保存します。これにより、速度と柔軟性が向上します。
- MySQLはオープンソースであるため、追加料金は必要ありません。
- MySQLは大規模なデータベースをサポートし、数千万のレコードを持つ大規模なデータベースを処理できます。
- MySQLは標準のSQLデータ言語形式を使用します。
- MySQLは複数のシステムで実行でき、複数の言語をサポートしています。
- MySQLは、GPLプロトコルを使用してカスタマイズできます。ソースコードを変更して、独自のMySQLシステムを開発できます。
- ……
高度なMySQL
- MySQLカーネル
- SQL最適化包囲ライオン
- MySQLサーバーの最適化
- 各種パラメータ定数設定
- クエリの最適化
- マスタースレーブ複製
- ソフトウェアとハードウェアのアップグレード
- 災害復旧
- SQLプログラミング
MySQL Linuxのインストール
LinuxシステムのバージョンはCentOS 6.10です。
MySQLのバージョンは5.6です。
- MySQLが現在のシステムにインストールされているかどうかを確認します。
rpm -qa | grep -i mysql
- インストールされている場合は、次のコマンドを使用してアンインストールします。
rpm -e mysql的包名称 --nodeps
- ファイアウォールをオフにする
service iptables stop
chkconfig iptables off
- MySQLインストールパッケージをダウンロードします。
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-devel-5.6.47-1.el6.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-client-5.6.47-1.el6.x86_64.rpm
wget https://dev.mysql.com/get/Downloads/MySQL-5.6/MySQL-server-5.6.47-1.el6.x86_64.rpm
- MySQLサーバーをインストールする
rpm -ivh MySQL-server-5.6.47-1.el6.x86_64.rpm
次のメッセージが表示されます。
MySQLのrootユーザーにランダムなパスワードが設定されました!
そのパスワードは「/root/.mysql_secret」にあります。最初の接続時にこのパスワードを変更する必要があります
。「SET PASSWORD」以外のステートメントは受け入れられません。
「パスワード期限切れ」フラグの意味については、マニュアルを参照してください。また、匿名ユーザーのアカウントが削除されました。
さらに、以下を実行できます。
/ usr / bin / mysql_secure_installation
また、テストデータベースを削除することもできます。
これは、運用サーバーに強く推奨されます。詳細については、マニュアルを参照してください。
問題があればhttp://bugs.mysql.com/で報告してください
MySQLの最新情報は、次のWebサイトで入手できます。
http://shop.mysql.comで support / licensesを購入してMySQLをサポートする
新しいデフォルトの設定ファイルは/usr/my.cnfとして作成さ
れ、起動時にサーバーによってデフォルトで使用されます。
このファイルを編集してサーバー設定を変更できます
- サーバーのインストール時にlibnuma.so.1への依存関係の欠落についてプロンプトが表示された場合は、yumを介してnumactlをインストールする必要があります
yum install numactl -y
- MySQL develとクライアントをインストールする
rpm -ivh MySQL-client-5.6.47-1.el6.x86_64.rpm
rpm -ivh MySQL-devel-5.6.47-1.el6.x86_64.rpm
- 構成ファイルの場所を変更します。
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
- MySQLサービスを開始します
service mysql start
- rootユーザーのデフォルトパスワードを表示する
cat /root/.mysql_secret
- デフォルトのパスワードでログイン
mysql -uroot -p
- MySQLでパスワードをリセットする
SET PASSWORD = PASSWORD('123456');
- リモートアクセスを許可するには、MySQLにログインして次のステートメントを実行します。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
FLUSH PRIVILEGES;
- MySQLを終了する
exit
- 起動後に自動的に開始するようにMySQLサービスを設定する
chkconfig mysql on
- 文字セットを変更する
vim /etc/my.cnf
- 次の情報を追加します
[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
- MySQLを再起動します
service mysql restart
MySQLのメイン構成ファイル
- バイナリログビン:マスター/スレーブレプリケーション。
- エラーログログエラー:デフォルトでは閉じられており、重大な警告とエラー情報、各起動とシャットダウンに関する詳細情報などが記録されています。
- クエリログログ:デフォルトでは無効になっています。有効になっている場合、クエリSQLステートメントのロギングはMySQLの全体的なパフォーマンスを低下させます。ロギングはシステムリソースも消費するためです。
- データファイル:
- Linuxでは、すべてのMySQLライブラリは/ var / lib / mysqlフォルダにあります。
- それらの中で:
- * .frm:テーブル構造を保存します。
- * .MYD:テーブルデータを保存します。
- * .MYI:テーブルインデックスを保存します。
- 構成方法:
- Windowsシステム:my.iniファイル。
- Linuxシステム:/etc/my.cnfファイル。
MySQLの論理アーキテクチャの概要
全体の概要
- 他のデータベースと比較すると、MySQLは少し異なり、そのアーキテクチャを適用して、さまざまなシナリオで優れた役割を果たすことができます。主にストレージエンジンのアーキテクチャに反映され、プラグインストレージエンジンアーキテクチャは、クエリ処理を他のシステムタスクおよびデータストレージ抽出から分離します。このアーキテクチャは、ビジネスニーズと実際のニーズに応じて適切なストレージエンジンを選択できます。
- MySQLの論理構造は、次の4つの層に分けることができます。
- ①接続層:最上層は、ローカルソケット通信や、クライアント/サーバーツールに基づくほとんどのTCP / IPのような通信を含む、いくつかのクライアントおよび接続サービスです 主に、接続処理、承認、認証、および関連するセキュリティソリューションに類似したいくつかを完了します。このレイヤーにスレッドプールの概念を導入して、認証を通じて安全にアクセスされるクライアントにスレッドを提供します。このレイヤーにSSLベースの安全なリンクを実装することもできます。サーバーは、安全に接続されている各クライアントに対するサーバーの操作権限も確認します。
- ②サービスレイヤー:2番目のレイヤーアーキテクチャは、主にSQLインターフェイスなどのコア機能サービスのほとんどを完了し、キャッシュクエリ、SQL分析と最適化、およびいくつかの組み込み関数の実行を完了します。プロシージャや関数など、すべてのクロスストレージエンジン関数もこのレイヤーに実装されています。このレベルでは、サーバーはクエリを解析して対応する内部パーサーを作成し、クエリテーブルの順序の決定、インデックスを使用するかどうかなどの対応する最適化を完了し、最終的に対応する実行オペレーションを生成します。SELECT操作の場合、サーバーは内部キャッシュも照会します。キャッシュスペースが十分に大きい場合は、多数の読み取り操作を解決する環境でシステムのパフォーマンスを向上させることができます。
- ③エンジンレイヤー:ストレージエンジンレイヤー、ストレージエンジンはMySQLでのデータの保存と抽出を実際に担当し、サーバーはAPIを介してストレージエンジンと通信します。ストレージエンジンごとに機能が異なるため、実際のニーズに応じて選択できます。
- ④ストレージレイヤー:データストレージレイヤーは、主にベアデバイスで実行されているファイルシステムにデータを保存し、ストレージエンジンとの相互作用を完了します。
MySQLストレージエンジン
コマンドを表示する
- 現在のMySQLサーバーのストレージエンジンを表示します。
SHOW ENGINES;
- 現在のMySQLサーバーのデフォルトのストレージエンジンを表示します。
SHOW VARIABLES LIKE '%storage_engine%';