==========MYSQL の動作原理図:
1》データベースの紹介: 簡単に言うと、データベースは特定のルールに従ってデータをディスクに保存します。一方、データベース管理システムを通じて、データベースに保存されたデータを効率的に管理できます。
SQL 言語: DBMS は SQL 言語を通じてデータベースを管理します。 SQL 言語はクエリおよび設計言語であり、主にデータの保存、データのクエリ、リレーショナル データベースの更新と管理に使用されます
SQL 言語は 3 つの部分に分かれています
DDL (データ定義言語) ステートメントは、データベース テーブル、ビューの定義に使用されます。
Create
Alter
Drop
Rename
Truncate
Comment
DML (データ操作言語) ステートメントは、データの挿入、データのクエリ、データの更新、およびデータの削除に使用される L (データ制御言語) ステートメントです。ユーザーアクセス権を制御するために、2.IBMのDB2
3.SYBEE BASE
4.MICROSOFTACCESSおよびSQL SERVERCの一部であることの一部であることに基づいて、ユーザーアクセス権を制御するために
6. オープンソース Mysql
Mysql の特徴:
1. クロスプラットフォーム、複数のオペレーティング システム、AIX FreeBSD HP-UX Linux MacOS NovellNetware OpenBSD Solaris Windows などをサポート 2. マルチスレッドをサポートし、ハードウェア リソースを最大限に活用できます(CPU リソース)
3. 大規模なデータベースをサポートし、数千万のエントリを持つ大規模なデータベースを処理できます。
mysql-server-5.6
1) InnoDB は、(ここで述べたような) 多数のテーブルを開いたときの過剰なメモリ使用の問題を制限できるようになりました (サードパーティがパッチを提供しています)
2)InnoDBのパフォーマンス強化。カーネル ミューテックスの分割、複数の Perge スレッドからのフラッシュ操作の分離、大規模なメモリの最適化など。 3) InnoDB デッドロック情報をエラー ログに記録して簡単に分析できます。 4) MySQL5.6 は遅延レプリケーションをサポートします。これにより、スレーブとマスター間の時間間隔を制御して、特殊な状況下でのデータ回復を容易にすることができます。
5)テーブルパーティション機能が強化されました
6)MySQLの行レベルレプリケーション機能が強化され、ディスク、メモリ、ネットワークなどのリソースのオーバーヘッドを削減できます(行レコードを決定できるフィールドのみが記録されます)
8) レプリケーションイベントは crc32 検証を使用してマスター/スレーブレプリケーションデータの一貫性を強化します
9) log_bin_basename を追加しました (以前は変数に binlog の場所情報がありませんでした。これはデータベース監視にとって非常に不便でした)
2》MYSQLをコンパイルしてインストールします:
1>インストール依存関係パッケージ:
yum install gcc gcc-c++ ncurses-devel perl cmake bison
3>Mysqlをインストール:
# groupadd mysql # useradd mysql –g mysql –s /sbin/nologin #mkdir -p /usr/local/mysql //Mysql的安装目录 #mkdir -p /data/mysqldb //Mysql数据目录 #mkdir -p /data/mysqldb/binlog //创建BINLOG日志目录 #mkdir -p /data/mysqldb/log //创建MYSQL 日常LOG目录
-DCMAKE_INSTALL_PREFIX=/ usr/local/mysql mysqlのインストールディレクトリを設定します
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock はリスニングソケットのパスを設定します。これは絶対パス名である必要があります。デフォルトは/tmp/mysql.sock
-DSYSCONFDIR=/etc 設定ファイルは/etc/
に配置されます -DDEFAULT_CHARSET=gbk サーバーの文字セットを設定します。 defaultデフォルトでは、MySQLはLATIN1(CP1252西ヨーロッパ)文字セットを使用します。 cmake/character_sets.cmake ファイルには、許可される文字セット名のリストが含まれています。
-DDEFAULT_COLLATION=gbk_chinese_ci サーバーの照合規則を設定します。
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
ストレージエンジンオプション:
MyISAM、MERGE、MEMORY、CSVエンジンはサーバー上でコンパイルされます。明示的にインストールする必要はありません。
ストレージ エンジンをサーバーに静的にコンパイルするには、-DWITH_engine_STORAGE_ENGINE= 1 を使用します
利用可能なストレージ エンジンの値は次のとおりです: ARCHIVE、BLACKHOLE、EXAMPLE、FEDERATED、INNOBASE (InnoDB)、PARTITION (パーティショニング サポート)、および PERFSCHEM) (パフォーマンススキーマ)
-DMYSQL_DATADIR=/data/mysqldb mysql データベース ファイル ディレクトリを設定します MYSQL_TCP_PORT=3306 mysql サーバーのリスニング ポートを設定します、デフォルトは 3306 です
-DENABLE_ダウンロード=1
-DENABLE_DOWNLOADS= 1 -DENABLE_DOWNLOADS=1たとえば、このオプションを有効にすると (1 に設定)、cmake は Google が単体テストを実行するために使用するテスト スイートをダウンロードします 4> make && make isntall 5>初期化: Mysql のインストールを承認しますディレクトリ # chown mysql:mysql /usr/local/mysql -R #chown mysql:mysql /data/mysqldb/ binlog/ datadir=/ data/mysqldb
Mysqlサービスをコピーします起動スクリプト # cp /usr/local/mysql/support-files/mysql.server # chmod 755 /etc/in it.d/ mysqld mysqlサービス起動スクリプトを変更する(複数のインスタンスに必要) /mysqldb 6> ;構成ファイル ========= 設定ファイルの詳細説明: 7> サービスを開始し、環境変数を設定します。
コンパイルとインストール後に my.cnf が /etc/ に見つからない場合は、元のコンパイル ディレクトリ、つまりパッケージが存在するディレクトリに移動してください。解凍して、support-files ディレクトリを見つけ、/etc/my.cnf にコピーされた my-default.cnf を置き換えます; # cd mysql-5.6.31 #cp support-files/my-default.cnf /etc/my .cnf
# vim /etc/my.cnf
[client]
port = 3306 //クライアントが接続しているポート番号
socket = /tmp/ mysql.sock //クライアントに接続するsockファイルの保存場所
[mysqld]
#base
port = 3306 //Mysqlのデフォルトのポート番号は変更可能
user = mysql //Mysqlのユーザー指定
socket = / tmp/mysql.sock //接続に使用するポート番号
pid-file = /tmp/mysql.pid //実行中のプロセスのメインPIDファイル
basedir = /usr/local/mysql //Mysqlのインストールディレクトリ
datadir = /data /mysqldb // Mysql データディレクトリ
tmpdir = /opt/mysqltmp //Mysql 一時テーブルディレクトリ
open_files_limit = 10240 //オープンファイルハンドル数
explicit_defaults_for_timestamp
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
federated / /SQL 構文とデータ検証をサポート、など sql_mode の 3 つのモード
ANSI モード、リラックス モード、挿入されたデータが定義された型または長さを満たしていない場合、データ型が調整または切り捨てられて保存され、「警告」警告が報告されます
TRADITIONAL モード、mysql データに挿入する場合の厳密モード データを使用する場合、データが挿入できないことを確認するために厳密なデータ検証が実行され、トランザクションに使用される場合、トランザクションはロールバックされます。厳密モード。データの厳密な検証を実行します。間違ったデータは挿入できず、エラーが報告されます。
server_id = 706 //マスター/スレーブ レプリケーションの一意のサービス識別番号。値は 1 から
#replicate- do-db = posp // 唯一のレプリケートされたライブラリを定義します
#replicate-ignore-db = mysql // 唯一のレプリケートされたライブラリを定義します
#log-slave-updates = 1 //このオプションはマスター/スレーブのレプリケーションに使用されます。サーバーからレプリケーションマスター情報を開きます
event_scheduler=1 //タイムスケジューラを開きます
max_connections = 2000 //#最大同時接続数を増やすには、開くことを許可されるファイル記述子の数も対応して増やす必要があります
max_connect_errors = 10000 / /ユーザーによって開始された接続エラーがこの値を超えると、ユーザーの次の接続はブロックされます。
interactive_timeout = 600 //対話型接続を閉じる前にサーバーがアクティビティを待機する秒数
wait_timeout = 600 / /サーバーは非対話型サーバーを閉じます 接続する前にアクティビティを待機する秒数
skip-name-resolve //#garnt、IPを使用する必要があり、ホスト名は使用できません、DNS解決は無効です
sync_binlog=0 //取引の安全性を確保できます。デフォルトは 0 です
log_bin_trust_function_creators = 1 //mysql のカスタマイズ可能な関数を開きます
character-set-server = utf8 //文字セットを設定します
default_storage_engine = InnoDB //デフォルトのエンジンを定義します
#log
log-bin = / data/ mysqldb/binlog/mysql-bin //binlog バイナリログのファイル名を指定します
binlog_cache_size = 32m //binlog のキャッシュサイズ
max_binlog_cache_size = 10g //binlog キャッシュの最大値を設定します
binlog_stmt_cache_size = 32m //最小値を設定しますbinlo キャッシュ
table_open_cache = 2048 //ファイルの開閉回数を減らすことができるテーブル記述子のキャッシュ サイズ
max_binlog_size = 1024m //最大の binlog ログ ファイルを 1G に設定します
binlog_format =mixed //binlog log format.
log_output = FILE // ログファイルへの出力を確認
log-error = /data/mysqldb/log/mysql-error.log //mysqlシステムエラーログ出力
slow_query_log = 1 //スローロギングをオンにする
slow_query_log_file = /data /mysqldb/log/mysql -slow_query.log //低速ログ出力のパスを定義します
general_log = 0 //通常のログを定義します
general_log_file = /data/mysqldb/log/mysql-general-query.log //通常のログ出力のパス
expire-logs -days = 30 //ログの保存期間は30日です
relay-log = /data/mysqldb/binlog/relay-bin //reloa_logレプリケーションのアドレスを定義します
relay-log- Index= /data/mysqldb/binlog/relay -bin.index //reloa_log のインデックスを定義します
#buffer
sort_buffer_size = 2m //#MyISAM テーブルが変更されたときに並べ替えに必要なバッファー。一般に 64M で十分です
read_buffer_size = 2m //MyISAM テーブルのフル テーブル スキャンに使用されるバッファ サイズです。
read_rnd_buffer_size = 2m //#ソート後にソートされたシーケンスから行が読み取られる場合、行データはこのバッファから読み取られます。ディスクシーク
join_buffer_size = 2m //# InnoDB はデータのキャッシュに使用され、
net_buffer_length = 16k //mysqldump 実行時のネットバッファ長の最大制限は 16Mb で、デフォルト値は 1Mb です
max_allowed_packet = 512m //独立サイズは接続ごとに動的に増加します
bulk_insert_buffer_size = 32m //# このバッファはバースト挿入が検出されたときに myisam に割り当てられます
max_heap_table_size = 512m//#メモリテーブルのサイズ
tmp_table_size = 512m//# 最大サイズ内部 (メモリ内) 一時テーブルのサイズ
thread_cache_size = 100 //#キャッシュ内の再利用可能なスレッドの数は適切に調整できます
query_cache_size = 256m //#MySQL クエリ結果バッファのサイズを指定します。チューニングは適切に調整できます
query_cache_limit = 10m //#単一の SQL ステートメントをキャッシュするための結果セットの上限。デフォルトは4KBです。チューニングは適切に調整できます
query_cache_min_res_unit = 4k
key_buffer_size = 16m //#キーワード バッファのサイズ。通常、MyISAM テーブルのインデックス ブロックをバッファするために使用されます
myisam_sort_buffer_size = 64m //# これは各スレッドに割り当てられるため、大きな値を設定する場合は注意が必要です
myisam_max_sort_file_size = 10g //MySQL がインデックスを再構築するときに許可される最大一時ファイル サイズ。この値では、インデックスはキーと値のバッファリングによって作成されます (低速)
myisam_repair_threads = 1 //#テーブルに複数のインデックスがある場合、MyISAM
#innodb
innodb_file_per_table = 1 #//#InnoDB を独立したものに変更できますテーブルスペースモード、それぞれ データベース内の各テーブルはデータスペースを生成します
innodb_data_file_path = ibdata1:2048M:autoextend //#データを保存する論理ドライバーが 1 つだけの場合は、1 つの自動インクリメント ファイルで十分です
innodb_log_file_size = 128m //#In ログ グループ内の各ログ ファイルのサイズ
innodb_log_files_in_group = 3 //# ログ グループ内のファイルの総数は、一般的に 2 ~ 3 が適切です
innodb_buffer_pool_size = 1g //innodb キャッシュ。 pool size
innodb_buffer_pool_instances = -1
innodb_max_dirty_pages_pct = 70 //#InnoDB バッファー プールで許可される最大ダーティ ページ率は 60 ~ 90 で問題ありません
#innodb_thread_concurrency = 8
innodb_flush_method = O_DIRECT
innodb_log_buffer_ size = 16m #バッファのサイズこの値がほぼいっぱいになると、InnoDB はデータをディスクにフラッシュする必要があります
innodb_flush_log_at_trx_commit = 2
0 は、ログがログ ファイルに約 1 秒ごとにのみ書き込まれ、ログ ファイルがディスク # 2 にフラッシュされることを意味します。各コミット後にログがログ ファイルに書き込まれることを意味しますが、ログ ファイルは約 1 秒ごとにのみディスクに更新されます
[mysql]
no-auto-rehash #コマンドを完了するには Tab キーを使用できます
プロンプト = (u@h) [d]_ #In Mysql このコマンドはホスト名を表示します
default-character-set = utf8 //文字セットを設定します
#: Vim /etc/profile ファイルの最後の部分。 # /etc/init.d/mysqld start
注:
log_slave_updates マスタースレーブレプリケーション時。マスターサーバーでこのオプションをオフにし、スレーブでこのオプションを有効にします
==================== 一般的な問題の分析:
データベースの起動後に発生したエラー: ️解決策:不足しているフォルダーを作成するには ;
2 作成するフォルダーの前のディレクトリにアクセス許可を設定します: chown mysql:mysql /tmpopt/
3 いくつかのファイルを削除する必要がある場合もあります。自分のディレクトリにある以下のファイルを削除してください:
ibdata1 ibprofile0 ibprofile1
以上がMysql のコンパイル、インストール、および簡単な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。