Mysql_Learning_Notes_mysql系統結構_2
三層體系結構,啓動方式,日誌類型及解析方法,mysql 升級
mysql
鏈接層
- 通訊協議處理\線程處理\帳號認證(
用戶名和密碼認證
)\安全檢查等
- tcp/ip 鏈接 網絡+端口號
- mysql -h x.x.x.x -uroot -pxxxx -P3306
- ERROR 1129 (HY000): Host 'mysql02' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
- 錯誤緣由:同一個ip在短期內產生太多中斷的數據庫鏈接而致使的阻塞(超過mysql數據庫max_connection_errors的最大值)
- 解決辦法:mysqladmin flush-hosts
- 儘量不在命令裏出現,可使用mysql --loginpath 的方式登陸.
- mysql_config_editor set -G p3507 -S /tmp/mgr_mysql3507.sock -p
- mysql --login-path=p3507
- Unix socket
- Name pipe (win 不經常使用)
share memory(win 不經常使用)sql
登陸認證注意:
mysql -hlocalhost -uroot 認證的是localhost
mysql -h127.1 -uroot 認證的是ip地址數據庫
SQL層
- 權限判斷(鑑權)、查詢解析、優化器&緩存、查詢執行&返回等

SQL解析沒有軟解析,每次都是硬解析,但硬解析損耗很小.
- 爲何不用QC ? 單看查詢緩存來講,是有積極做用,但從併發來講,若是實例在頻繁的更新,會致使等待(鎖),性能並不理想,所只適合不頻繁更新的實例.5.7開始默認是關閉的,8.0直接禁了.
Select sql_no_cache count(*) from users; 經過'sql_no_cache'方式指定某一條SQL不走QC緩存
儲存層
數據目錄結構:
請求日誌\錯誤日誌\二進制日誌\中繼日誌
- 存儲引擎(基於磁盤):Innodb、MyISAM、TokuDB 存儲引擎API接口
- 存儲引擎(基於內存):MEMORY/HEAP
- 存儲引擎(基於網絡):NDB(不推薦
)
特別的文件:安全
- auto.cnf 常於用存儲server-uuid,當複製從庫時須要注意,避免server-uuid重複(重複時須要刪除此文件,再從新啓動會產生新的).
- relay-bin.000001 relay log(中繼日誌)主要用於存儲主庫傳過來的binlog
- mysql-bin.000001 binlog 主要存儲實例修改日誌
- ib_logfile0 innodb redo log files
- error.log 錯誤日誌文件
排錯很是有用的文件
*.ibd 表數據文件,沒有備份並drop表後,數據恢復時的關鍵文件
網絡
配置文件
- 讀取位置順序:
- /etc/my.cnf
- /etc/mysql/my.cnf
- usr/local/mysql/etc/my.cnf
- ~/.my.cnf
- my.cnf 配置文件的主要部分
- client 全部客戶端及相關程序(如:mysql mysqladmin mysqldump等)
- mysql 只管"mysql"客戶端
- mysqldump 只管"mysqldump"客戶端
- mysql_multi 多版本啓動的配置
- mysqld mysql服務的配置
多實例配置在同一個文件:
my.cnf
[mysqld]
通用參數
[mysqld3306]
3306端口實例的參數
[mysqld3307]
3306端口實例的參數session
啓動方式
- mysqld (5.7默認,格式:mysqld --defaults-file=/data/mysql3306/my3306.cnf&)
- mysql_safe (5.6默認)
mysqld_multi (多版本啓動)併發
日誌類型及解析方法
錯誤 |
log-error=error.log |
error.log |
n/a |
常規 |
general_log/ general_log_file=general.log |
general.log或mysql.general表 |
pt-query-digest |
慢速查詢 |
slow_query_log=slow.log&long-query_time=x |
slow.log或mysql.slow_log表 |
mysqldumpslow或pt-query-digest |
二進制 |
log-bin=/path/mybinlog&expire-logs-days |
mybinlog.000001 |
mysqlbinlog或pt-query-digest |
審計 |
audit_log&audit_log_file |
audit.log |
N/A |
mysql 升級
- mysql_upgrade -f (小版本)
- 大版本:
- 全備並查閱官方升級文檔
- innodb髒頁比例innodb_max_dirty_pages_pct設置爲0
- innodb_fast_shutdown=0
- shutdown
- mysql_upgrade -f
- [root@db211_07:07:13 /data/57mysql/mysql3507] ''#tree . ├── data │ ├── 3506binlog │ ├── auto.cnf │ ├── backup-my.cnf │ ├── error.log │ ├── ib_buffer_pool │ ├── ib_logfile0 │ ├── ib_logfile1 │ ├── ib_logfile2 │ ├── innodb_status.12888 │ ├── master.info │ ├── mysql │ │ ├── columns_priv.frm │ │ ├── columns_priv.MYD │ │ ├── columns_priv.MYI │ │ ├── db.frm │ │ ├── db.MYD │ │ ├── db.MYI │ │ ├── db.opt │ │ ├── engine_cost.frm │ │ ├── engine_cost.ibd │ │ ├── event.frm │ │ ├── event.MYD │ │ ├── event.MYI │ │ ├── func.frm │ │ ├── func.MYD │ │ ├── func.MYI │ │ ├── general_log.CSM │ │ ├── general_log.CSV │ │ ├── general_log.frm │ │ ├── gtid_executed.frm │ │ ├── gtid_executed.ibd │ │ ├── help_category.frm │ │ ├── help_category.ibd │ │ ├── help_keyword.frm │ │ ├── help_keyword.ibd │ │ ├── help_relation.frm │ │ ├── help_relation.ibd │ │ ├── help_topic.frm │ │ ├── help_topic.ibd │ │ ├── innodb_index_stats.frm │ │ ├── innodb_index_stats.ibd │ │ ├── innodb_table_stats.frm │ │ ├── innodb_table_stats.ibd │ │ ├── ndb_binlog_index.frm │ │ ├── ndb_binlog_index.MYD │ │ ├── ndb_binlog_index.MYI │ │ ├── plugin.frm │ │ ├── plugin.ibd │ │ ├── proc.frm │ │ ├── proc.MYD │ │ ├── proc.MYI │ │ ├── procs_priv.frm │ │ ├── procs_priv.MYD │ │ ├── procs_priv.MYI │ │ ├── proxies_priv.frm │ │ ├── proxies_priv.MYD │ │ ├── proxies_priv.MYI │ │ ├── server_cost.frm │ │ ├── server_cost.ibd │ │ ├── servers.frm │ │ ├── servers.ibd │ │ ├── slave_master_info.frm │ │ ├── slave_master_info.ibd │ │ ├── slave_relay_log_info.frm │ │ ├── slave_relay_log_info.ibd │ │ ├── slave_worker_info.frm │ │ ├── slave_worker_info.ibd │ │ ├── slow_log.CSM │ │ ├── slow_log.CSV │ │ ├── slow_log.frm │ │ ├── tables_priv.frm │ │ ├── tables_priv.MYD │ │ ├── tables_priv.MYI │ │ ├── time_zone.frm │ │ ├── time_zone.ibd │ │ ├── time_zone_leap_second.frm │ │ ├── time_zone_leap_second.ibd │ │ ├── time_zone_name.frm │ │ ├── time_zone_name.ibd │ │ ├── time_zone_transition.frm │ │ ├── time_zone_transition.ibd │ │ ├── time_zone_transition_type.frm │ │ ├── time_zone_transition_type.ibd │ │ ├── user.frm │ │ ├── user.MYD │ │ └── user.MYI │ ├── performance_schema │ │ ├── accounts.frm │ │ ├── cond_instances.frm │ │ ├── db.opt │ │ ├── events_stages_current.frm │ │ ├── events_stages_history.frm │ │ ├── events_stages_history_long.frm │ │ ├── events_stages_summary_by_account_by_event_name.frm │ │ ├── events_stages_summary_by_host_by_event_name.frm │ │ ├── events_stages_summary_by_thread_by_event_name.frm │ │ ├── events_stages_summary_by_user_by_event_name.frm │ │ ├── events_stages_summary_global_by_event_name.frm │ │ ├── events_statements_current.frm │ │ ├── events_statements_history.frm │ │ ├── events_statements_history_long.frm │ │ ├── events_statements_summary_by_account_by_event_name.frm │ │ ├── events_statements_summary_by_digest.frm │ │ ├── events_statements_summary_by_host_by_event_name.frm │ │ ├── events_statements_summary_by_program.frm │ │ ├── events_statements_summary_by_thread_by_event_name.frm │ │ ├── events_statements_summary_by_user_by_event_name.frm │ │ ├── events_statements_summary_global_by_event_name.frm │ │ ├── events_transactions_current.frm │ │ ├── events_transactions_history.frm │ │ ├── events_transactions_history_long.frm │ │ ├── events_transactions_summary_by_account_by_event_name.frm │ │ ├── events_transactions_summary_by_host_by_event_name.frm │ │ ├── events_transactions_summary_by_thread_by_event_name.frm │ │ ├── events_transactions_summary_by_user_by_event_name.frm │ │ ├── events_transactions_summary_global_by_event_name.frm │ │ ├── events_waits_current.frm │ │ ├── events_waits_history.frm │ │ ├── events_waits_history_long.frm │ │ ├── events_waits_summary_by_account_by_event_name.frm │ │ ├── events_waits_summary_by_host_by_event_name.frm │ │ ├── events_waits_summary_by_instance.frm │ │ ├── events_waits_summary_by_thread_by_event_name.frm │ │ ├── events_waits_summary_by_user_by_event_name.frm │ │ ├── events_waits_summary_global_by_event_name.frm │ │ ├── file_instances.frm │ │ ├── file_summary_by_event_name.frm │ │ ├── file_summary_by_instance.frm │ │ ├── global_status.frm │ │ ├── global_variables.frm │ │ ├── host_cache.frm │ │ ├── hosts.frm │ │ ├── memory_summary_by_account_by_event_name.frm │ │ ├── memory_summary_by_host_by_event_name.frm │ │ ├── memory_summary_by_thread_by_event_name.frm │ │ ├── memory_summary_by_user_by_event_name.frm │ │ ├── memory_summary_global_by_event_name.frm │ │ ├── metadata_locks.frm │ │ ├── mutex_instances.frm │ │ ├── objects_summary_global_by_type.frm │ │ ├── performance_timers.frm │ │ ├── prepared_statements_instances.frm │ │ ├── replication_applier_configuration.frm │ │ ├── replication_applier_status_by_coordinator.frm │ │ ├── replication_applier_status_by_worker.frm │ │ ├── replication_applier_status.frm │ │ ├── replication_connection_configuration.frm │ │ ├── replication_connection_status.frm │ │ ├── replication_group_members.frm │ │ ├── replication_group_member_stats.frm │ │ ├── rwlock_instances.frm │ │ ├── session_account_connect_attrs.frm │ │ ├── session_connect_attrs.frm │ │ ├── session_status.frm │ │ ├── session_variables.frm │ │ ├── setup_actors.frm │ │ ├── setup_consumers.frm │ │ ├── setup_instruments.frm │ │ ├── setup_objects.frm │ │ ├── setup_timers.frm │ │ ├── socket_instances.frm │ │ ├── socket_summary_by_event_name.frm │ │ ├── socket_summary_by_instance.frm │ │ ├── status_by_account.frm │ │ ├── status_by_host.frm │ │ ├── status_by_thread.frm │ │ ├── status_by_user.frm │ │ ├── table_handles.frm │ │ ├── table_io_waits_summary_by_index_usage.frm │ │ ├── table_io_waits_summary_by_table.frm │ │ ├── table_lock_waits_summary_by_table.frm │ │ ├── threads.frm │ │ ├── users.frm │ │ ├── user_variables_by_thread.frm │ │ └── variables_by_thread.frm │ ├── relay-bin.000020 │ ├── relay-bin.000021 │ ├── relay-bin.000022 │ ├── relay-bin.000023 │ ├── relay-bin.index │ ├── relay-log.info │ ├── slow.log │ ├── sys │ │ ├── db.opt │ │ ├── host_summary_by_file_io.frm │ │ ├── host_summary_by_file_io_type.frm │ │ ├── host_summary_by_stages.frm │ │ ├── host_summary_by_statement_latency.frm │ │ ├── host_summary_by_statement_type.frm │ │ ├── host_summary.frm │ │ ├── innodb_buffer_stats_by_schema.frm │ │ ├── innodb_buffer_stats_by_table.frm │ │ ├── innodb_lock_waits.frm │ │ ├── io_by_thread_by_latency.frm │ │ ├── io_global_by_file_by_bytes.frm │ │ ├── io_global_by_file_by_latency.frm │ │ ├── io_global_by_wait_by_bytes.frm │ │ ├── io_global_by_wait_by_latency.frm │ │ ├── latest_file_io.frm │ │ ├── memory_by_host_by_current_bytes.frm │ │ ├── memory_by_thread_by_current_bytes.frm │ │ ├── memory_by_user_by_current_bytes.frm │ │ ├── memory_global_by_current_bytes.frm │ │ ├── memory_global_total.frm │ │ ├── metrics.frm │ │ ├── processlist.frm │ │ ├── ps_check_lost_instrumentation.frm │ │ ├── schema_auto_increment_columns.frm │ │ ├── schema_index_statistics.frm │ │ ├── schema_object_overview.frm │ │ ├── schema_redundant_indexes.frm │ │ ├── schema_table_lock_waits.frm │ │ ├── schema_table_statistics.frm │ │ ├── schema_table_statistics_with_buffer.frm │ │ ├── schema_tables_with_full_table_scans.frm │ │ ├── schema_unused_indexes.frm │ │ ├── session.frm │ │ ├── session_ssl_status.frm │ │ ├── statement_analysis.frm │ │ ├── statements_with_errors_or_warnings.frm │ │ ├── statements_with_full_table_scans.frm │ │ ├── statements_with_runtimes_in_95th_percentile.frm │ │ ├── statements_with_sorting.frm │ │ ├── statements_with_temp_tables.frm │ │ ├── sys_config.frm │ │ ├── sys_config.ibd │ │ ├── sys_config_insert_set_user.TRN │ │ ├── sys_config.TRG │ │ ├── sys_config_update_set_user.TRN │ │ ├── user_summary_by_file_io.frm │ │ ├── user_summary_by_file_io_type.frm │ │ ├── user_summary_by_stages.frm │ │ ├── user_summary_by_statement_latency.frm │ │ ├── user_summary_by_statement_type.frm │ │ ├── user_summary.frm │ │ ├── version.frm │ │ ├── wait_classes_global_by_avg_latency.frm │ │ ├── wait_classes_global_by_latency.frm │ │ ├── waits_by_host_by_latency.frm │ │ ├── waits_by_user_by_latency.frm │ │ ├── waits_global_by_latency.frm │ │ ├── x@0024host_summary_by_file_io.frm │ │ ├── x@0024host_summary_by_file_io_type.frm │ │ ├── x@0024host_summary_by_stages.frm │ │ ├── x@0024host_summary_by_statement_latency.frm │ │ ├── x@0024host_summary_by_statement_type.frm │ │ ├── x@0024host_summary.frm │ │ ├── x@0024innodb_buffer_stats_by_schema.frm │ │ ├── x@0024innodb_buffer_stats_by_table.frm │ │ ├── x@0024innodb_lock_waits.frm │ │ ├── x@0024io_by_thread_by_latency.frm │ │ ├── x@0024io_global_by_file_by_bytes.frm │ │ ├── x@0024io_global_by_file_by_latency.frm │ │ ├── x@0024io_global_by_wait_by_bytes.frm │ │ ├── x@0024io_global_by_wait_by_latency.frm │ │ ├── x@0024latest_file_io.frm │ │ ├── x@0024memory_by_host_by_current_bytes.frm │ │ ├── x@0024memory_by_thread_by_current_bytes.frm │ │ ├── x@0024memory_by_user_by_current_bytes.frm │ │ ├── x@0024memory_global_by_current_bytes.frm │ │ ├── x@0024memory_global_total.frm │ │ ├── x@0024processlist.frm │ │ ├── x@0024ps_digest_95th_percentile_by_avg_us.frm │ │ ├── x@0024ps_digest_avg_latency_distribution.frm │ │ ├── x@0024ps_schema_table_statistics_io.frm │ │ ├── x@0024schema_flattened_keys.frm │ │ ├── x@0024schema_index_statistics.frm │ │ ├── x@0024schema_table_lock_waits.frm │ │ ├── x@0024schema_table_statistics.frm │ │ ├── x@0024schema_table_statistics_with_buffer.frm │ │ ├── x@0024schema_tables_with_full_table_scans.frm │ │ ├── x@0024session.frm │ │ ├── x@0024statement_analysis.frm │ │ ├── x@0024statements_with_errors_or_warnings.frm │ │ ├── x@0024statements_with_full_table_scans.frm │ │ ├── x@0024statements_with_runtimes_in_95th_percentile.frm │ │ ├── x@0024statements_with_sorting.frm │ │ ├── x@0024statements_with_temp_tables.frm │ │ ├── x@0024user_summary_by_file_io.frm │ │ ├── x@0024user_summary_by_file_io_type.frm │ │ ├── x@0024user_summary_by_stages.frm │ │ ├── x@0024user_summary_by_statement_latency.frm │ │ ├── x@0024user_summary_by_statement_type.frm │ │ ├── x@0024user_summary.frm │ │ ├── x@0024wait_classes_global_by_avg_latency.frm │ │ ├── x@0024wait_classes_global_by_latency.frm │ │ ├── x@0024waits_by_host_by_latency.frm │ │ ├── x@0024waits_by_user_by_latency.frm │ │ └── x@0024waits_global_by_latency.frm │ ├── sysbench_testdata │ │ ├── db.opt │ │ ├── sbtest10.frm │ │ ├── sbtest10.ibd │ │ ├── sbtest1.frm │ │ ├── sbtest1.ibd │ │ ├── sbtest2.frm │ │ ├── sbtest2.ibd │ │ ├── sbtest3.frm │ │ ├── sbtest3.ibd │ │ ├── sbtest4.frm │ │ ├── sbtest4.ibd │ │ ├── sbtest5.frm │ │ ├── sbtest5.ibd │ │ ├── sbtest6.frm │ │ ├── sbtest6.ibd │ │ ├── sbtest7.frm │ │ ├── sbtest7.ibd │ │ ├── sbtest8.frm │ │ ├── sbtest8.ibd │ │ ├── sbtest9.frm │ │ └── sbtest9.ibd │ ├── wenyz │ │ ├── db.opt │ │ ├── t2.cfg │ │ ├── t2.frm │ │ └── t2.ibd │ ├── xtrabackup_binlog_info │ ├── xtrabackup_binlog_pos_innodb │ ├── xtrabackup_checkpoints │ ├── xtrabackup_info │ └── xtrabackup_logfile ├── logs │ ├── mysql-bin.000001 │ ├── mysql-bin.000002 │ ├── mysql-bin.000003 │ ├── mysql-bin.000004 │ ├── mysql-bin.000005 │ ├── mysql-bin.000006 │ ├── mysql-bin.000007 │ ├── mysql-bin.000008 │ └── mysql-bin.index ├── my3506.cnf └── tmp