Mysql_Learning_Notes_mysql系统结构_2
Mysql_Learning_Notes_mysql系统结构_2
三层体系结构,启动方式,日志类型及解析方法,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
- mysql -h x.x.x.x -uroot -pxxxx -P3306
- Unix socket
- Name pipe (win 不常用)
share memory(win 不常用)
登录认证注意:
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端口实例的参数启动方式
- 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
Mysql_Learning_Notes_mysql系统结构_2的更多相关文章
- 深入解析Windows操作系统笔记——CH2系统结构
2.系统结构 本章主要介绍系统的总体结构,关键部件之间的交互,以及运行在什么环境. 2.系统结构 2.1 需求和设计目标 2.2 操作系统模型 2.3 总体结构 2.3.1 可移植性 2.3.2 对称 ...
- linux 文件系统结构及命令
1.linux 文件系统结构 / 根目录 root |--mnt/ | |--sdcard/ 挂载点 | |--usb0 | |--cdrom |--home | |--soft01 <- 用 ...
- Linux系统结构
Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统.部分层次结构如图 ...
- 【程序员技术练级】熟悉Unix/Linux Shell和常见的命令行(一)文件系统结构和基本操作
作为程序猿,熟悉一些unix/linux命令行是非常必要的,因为部署服务的服务器现在基本上用的都是unix/linux系统,很少在windows上部署服务的. 今天我们就介绍一些在linux上的文件系 ...
- [转]WCDMA系统结构及关键技术
本文转自:http://blog.csdn.net/lele52141/article/details/8498951 WCDMA系统结构: CN指核心网,UTRAN接入网,UE用户设备. UTRAN ...
- Linux 系统结构
Linux的系统结构一般由四部分组成 内核 1)内核 操作系统的核心,具有最基本的功能:内存管理.进程管理.设备驱动管理.文件系统管理,网络管理 内核版本(kernel)查看的三种方法 cat /pr ...
- Linux 系统结构详解
Linux 系统结构详解 Linux系统一般有4个主要部分: 内核.shell.文件系统和应用程序.内核.shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序.管理文件并使用系统 ...
- Linux菜鸟学习笔记--Linux系统结构
什么是Linux? Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核.严格来讲,Linux这个词本身只表示Linux内核,但实际上人 ...
- 操作系统基本概念(内核态与用户态、操作系统结构)-by sixleaves
内核态与用户态(为什么存在这种机制.程序应处于哪个状态.如何判断当前所处状态.哪些功能需要内核态.如何实现这种机制) 1.首先我们应该思考清楚为什么会有内核态和用户态?(为什么存在这种机制) 因为计算 ...
随机推荐
- P3850 [TJOI2007]书架
题目描述 Knuth先生家里有个精致的书架,书架上有N本书,如今他想学到更多的知识,于是又买来了M本不同的新书.现在他要把新买的书依次插入到书架中,他已经把每本书要插入的位置标记好了,并且相应的将它们 ...
- png?wxfrom=5&wx_lazy=1
作为一名游戏行业的视频&平面设计师,平时的工作就是为公司发行的游戏制作宣传视频.广告.平面宣传图,打交道最多的自然就是Adobe家族的设计软件,Photoshop.AfterEffects.P ...
- 【XSY1759】Alice and Bob
Description XSY1759 Solution 肯定是离线对每个子树求答案. 考虑对每个子树建出所包含的值的Trie树,这点用启发式算法实现即可,即每个元素会被插入\(\mathcal O( ...
- Linux系统启动详解(三)
上节已系统initramfs已启动完成,将系统控制权交给了真正的rootfs的/sbin/init,下面就是/sbin/init干活的时间了. 4 /sbin/init initramfs ...
- Python 使用CPickle和pickle模块进行序列化和反序列化
#Cpickle使用C语言进行编写的相比pickle来说效率高很多 #-*-coding:utf-8-*-'''序列化操作'''try: import cPickle as pickleexce ...
- Java之链表实现栈结构
package com.wzlove.stack; import java.util.Iterator; import java.util.NoSuchElementException; /** * ...
- Compile、Make和Build的区别(as make, build, clean, run)
Compile.Make和Build的区别 - 熔 岩 - 51CTO技术博客 http://lavasoft.blog.51cto.com/62575/436216/ 针对Java的开发工具,一般都 ...
- struts2的MVC模式
MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而得到更好的开发和维护效率. 在MVC模式中,应用程序被划分成了模型(Model).视 ...
- 题解【bzoj1503 [NOI2004]郁闷的出纳员】
Description 给出一个下限 \(m\) ,要求维护以下操作 插入一个数(如果小于下限就不加) 给每个数加上一个数 给每个数减去一个数,并且删除掉 \(< m\) 的所有数 求目前第 \ ...
- python的dict()字典数据类型的方法详解以及案例使用
一.之前的回顾 # int 数字 # str 字符串 # list 列表 # tuple 元组 # dict 字典 字典中最重要的方法 keys() values() items() get upd ...