如何查看mysql默认读取my.cnf的目录

72次阅读
没有评论

共计 12263 个字符,预计需要花费 31 分钟才能阅读完成。

这篇文章给大家分享的是有关如何查看 mysql 默认读取 my.cnf 的目录的内容。丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,一起跟随丸趣 TV 小编过来看看吧。

查看 mysql 默认读取 my.cnf 的目录

如果没有设置使用指定目录的 my.cnf,mysql 启动时会读取安装目录根目录及默认目录下的 my.cnf 文件,查看 mysql 启动时读取配置文件的默认目录,命令如下:

mysql –help|grep my.cnf

命令输出中的就是 mysql 默认会搜寻 my.cnf 的目录,顺序排前的优先。

[client]
#########################################################################
#                                                                       #
#                         MySQL 客户端配置                               #
#                                                                       #
#########################################################################
port = 3306 
# MySQL 客户端默认端口号

socket = /data/mysql/my3306/mysql.sock
# 用于本地连接的 Unix 套接字文件存放路径

default-character-set = utf8mb4
# MySQL 客户端默认字符集

[mysql]
#########################################################################
#                                                                       #
#                         MySQL 命令行配置                               #
#                                                                       #
#########################################################################
auto-rehash
# 开启 tab 补齐功能

socket = /data/mysql/my3306/mysql.sock
# 用于本地连接的 Unix 套接字文件存放路径

default-character-set = utf8mb4
# MySQL 客户端默认字符集

max_allowed_packet = 256M
# 指定在网络传输中一次消息传输量的最大值。系统默认值 为 1MB,最大值是 1GB,必须设置 1024 的倍数。

[mysqld]
#########################################################################
#                                                                       #
#                         MySQL 服务端配置                               #
#                                                                       #
#########################################################################

########################################
#                                      #
#               General                #
#                                      #
########################################
port = 3306
# MySQL 服务端默认监听的 TCP/IP 端口

socket = /data/mysql/my3306/mysql.sock
# 用于本地连接的 Unix 套接字文件存放路径

pid_file = /data/mysql/my3306/mysql.pid
# 进程 ID 文件存放路径

basedir = /app/mysql
# MySQL 软件安装路径

datadir = /data/mysql/my3306
# MySQL 数据文件存放路径

tmpdir = /data/mysql/my3306
# MySQL 临时文件存放路径

character_set_server = utf8mb4
# MySQL 服务端字符集

collation_server = utf8mb4_general_ci
# MySQL 服务端校对规则

default-storage-engine = InnoDB
# 设置默认存储引擎为 InnoDB

autocommit = OFF
# 默认为 ON,设置为 OFF,关闭事务自动提交

transaction_isolation = READ-COMMITTED
# MySQL 支持 4 种事务隔离级别,他们分别是:
# READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE.
# 如没有指定,MySQL 默认采用的是 REPEATABLE-READ,ORACLE 默认的是 READ-COMMITTED

event_scheduler = ON 
# 开启事件调度器 event_scheduler

#explicit_defaults_for_timestamp = ON
# 控制 TIMESTAMP 数据类型的特性,默认 OFF,设置为 ON,update 时 timestamp 列关闭自动更新。(将来会被废弃)

lower_case_table_names = 1
# 库名、表名是否区分大小写。默认为 0,设置 1,不区分大小写,创建的表、数据库都以小写形式存放磁盘。

########################################
#                                      #
#       Network Connection           #
#                                      #
########################################
max_connections = 1000
# MySQL 允许的最大并发连接数,默认值 151,如果经常出现 Too Many Connections 的错误提示,则需要增大此值。

max_user_connections = 1000
# 每个数据库用户的最大连接,(同一个账号能够同时连接到 mysql 服务的最大连接数),默认为 0,表示不限制。

back_log = 500
# MySQL 监听 TCP 端口时设置的积压请求栈大小,默认 50+(max_connections/5),最大不超过 900

max_connect_errors = 10000
# 每个主机的连接请求异常中断的最大次数。对于同一主机,如果有超出该参数值个数的中断错误连接,则该主机将被禁止连接。如需对该主机进行解禁,执行:FLUSH HOST。

interactive_timeout = 28800
# 服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在 mysql_real_connect()中使用 CLIENT_INTERACTIVE 选项的客户端。默认值:28800 秒(8 小时)

wait_timeout = 28800
# 服务器关闭非交互连接之前等待活动的秒数。默认值:28800 秒(8 小时)
# 指定一个请求的最大连接时间,当 MySQL 连接闲置超过一定时间后将会被强行关闭。对于 4GB 左右内存的服务器来说,可以将其设置为 5~10。
# 如果经常出现 Too Many Connections 的错误提示,或者 show processlist 命令发现有大量 sleep 进程,则需要同时减小 interactive_timeout 和 wait_timeout 值。

connect_timeout = 28800
# 在获取连接时,等待握手的超时秒数,只在登录时生效。主要是为了防止网络不佳时应用重连导致连接数涨太快,一般默认即可。

open_files_limit = 5000
# mysqld 能打开文件的最大个数,默认最小 1024,如果出现 too mant open files 之类的就需要增大该值。

max_allowed_packet = 256M
# 指定在网络传输中一次消息传输量的最大值。系统默认值 为 1MB,最大值是 1GB,必须设置 1024 的倍数。

########################################
#                                      #
#          Thread Buffer             #
#                                      #
########################################
sort_buffer_size = 2M
# 排序缓冲区大小,connection 级参数,默认大小为 2MB。如果想要增加 ORDER BY 的速度,首先看是否可以让 MySQL 使用索引,其次可以尝试增大该值。

read_buffer_size = 160M
# 顺序读缓冲区大小,connection 级参数,该参数对应的分配内存是每连接独享。对表进行顺序扫描的请求将分配一个读入缓冲区。

read_rnd_buffer_size = 160M
# 随机读缓冲区大小,connection 级参数,该参数对应的分配内存是每连接独享。默认值 256KB,最大值 4GB。当按任意顺序读取行时,将分配一个随机读缓存区。

join_buffer_size = 320M
# 联合查询缓冲区大小,connection 级参数,该参数对应的分配内存是每连接独享。

bulk_insert_buffer_size = 64M  
# 批量插入数据缓存大小,可以有效提高插入效率,默认为 8M

thread_cache_size = 8
# 服务器线程缓冲池中存放的最大连接线程数。默认值是 8,断开连接时如果缓存中还有空间,客户端的线程将被放到缓存中,当线程重新被请求,将先从缓存中读取。
# 根据物理内存设置规则如下:1G  — 8,2G  — 16,3G  — 32,大于 3G  — 64

thread_stack = 256K
# 每个连接被创建时,mysql 分配给它的内存。默认 192KB,已满足大部分场景,除非必要否则不要动它,可设置范围 128KB~4GB。

query_cache_type = 0
# 关闭查询缓存

query_cache_size = 0
# 查询缓存大小,在高并发,写入量大的系统,建议把该功能禁掉。

query_cache_limit = 4M    
# 指定单个查询能够使用的缓冲区大小,缺省为 1M

tmp_table_size = 1024M
# MySQL 的 heap(堆积)表缓冲大小,也即内存临时表,默认大小是 32M。如果超过该值,则会将临时表写入磁盘。在频繁做很多高级 GROUP BY 查询的 DW 环境,增大该值。
# 实际起限制作用的是 tmp_table_size 和 max_heap_table_size 的最小值。

max_heap_table_size = 1024M
# 用户可以创建的内存表 (memory table) 的大小,这个值用来计算内存表的最大行数值。

table_definition_cache = 400
# 表定义缓存区,缓存 frm 文件。表定义 (global) 是全局的,可以被所有连接有效的共享。

table_open_cache = 1000
# 所有 SQL 线程可以打开表缓存的数量,缓存 ibd/MYI/MYD 文件。打开的表 (session 级别) 是每个线程,每个表使用。

table_open_cache_instances = 4
# 对 table cache 能拆成的分区数,用于减少锁竞争,最大值 64.

########################################
#                                      #
#               Safety                 #
#                                      #
########################################
#sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,ONLY_FULL_GROUP_BY
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER
# MySQL 支持的 SQL 语法模式,与其他异构数据库之间进行数据迁移时,SQL Mode 组合模式会有帮助。

local_infile = OFF
# 禁用 LOAD DATA LOCAL 命令

plugin-load = validate_password.so
# 加密认证插件,强制 mysql 设置复杂密码

skip-external-locking
#skip-locking 
# 避免 MySQL 的外部锁定,减少出错几率,增强稳定性。

skip-name-resolve 
# 禁止 MySQL 对外部连接进行 DNS 解析,消除 MySQL 进行 DNS 解析。如果开启该选项,所有远程主机连接授权都要使用 IP 地址方式,否则 MySQL 将无法正常处理连接请求!

#skip-networking 
# 不允许 CP/IP 连接,只能通过命名管道(Named Pipes)、共享内存(Shared Memory)或 Unix 套接字(Socket)文件连接。
# 如果 Web 服务器以远程连接方式访问 MySQL 数据库服务器,则不要开启该选项,否则无法正常连接!
# 适合应用和数据库共用一台服务器的情况,其他客户端无法通过网络远程访问数据库

########################################
#                                      #
#                 Logs                 #
#                                      #
########################################
###################   General Log  ######################
general_log = OFF
# 关闭通用查询日志

general_log_file = /data/mysql/my3306/general.log
# 通用查询日志存放路径

###################     Slow Log   ######################
slow_query_log = ON
# 开启慢查询日志

slow_query_log_file = /data/mysql/my3306/slow.log
# 慢查询日志存放路径

long_query_time = 10
# 超过 10 秒的查询,记录到慢查询日志,默认值 10

log_queries_not_using_indexes = ON
# 没有使用索引的查询,记录到慢查询日志,可能引起慢查询日志快速增长

log_slow_admin_statements = ON
# 执行缓慢的管理语句,记录到慢查询日志
# 例如 ALTER TABLE, ANALYZE TABLE, CHECK TABLE, CREATE INDEX, DROP INDEX, OPTIMIZE TABLE, and REPAIR TABLE.

###################     Error Log   ####################
log_error = /data/mysql/my3306/error.log
# 错误日志存放路径

log_error_verbosity = 2
# 全局动态变量,默认 3,范围:1~3
# 表示错误日志记录的信息,1:只记录 error 信息;2:记录 error 和 warnings 信息;3:记录 error、warnings 和普通的 notes 信息

########################################
#                                      #
#           Replication                #
#                                      #
########################################

###################     Bin Log    ######################
server_id = 6
# 数据库服务器 ID

log_bin = /data/mysql/my3306/binlog
# 二进制日志存放路径

log_bin_index = /data/mysql/my3306/binlog.index
# 同 binlog,定义 binlog 的位置和名称

binlog_format = row
# binlog 格式,复制有 3 种模式 STATEMENT,ROW,MIXED

expire_logs_days = 10
# 只保留最近 10 天的 binlog 日志

max_binlog_size = 50M
# 每个 binlog 日志文件的最大容量

binlog_cache_size = 2M
# 每个 session 分配的 binlog 缓存大小
# 事务提交前产生的日志,记录到 Cache 中;事务提交后,则把日志持久化到磁盘

log_slave_updates = ON
# 开启 log_slave_updates,从库的更新操作记录进 binlog 日志

sync_binlog = 1
# sync_binlog=0(默认),事务提交后 MySQL 不刷新 binlog_cache 到磁盘,而让 Filesystem 自行决定,或者 cache 满了才同步。
# sync_binlog=n,每进行 n 次事务提交之后,MySQL 将 binlog_cache 中的数据强制写入磁盘。

binlog_rows_query_log_events = ON
# 将 row 模式下的 sql 语句,记录到 binlog 日志,默认是 0(off)

###################     Relay Log  ######################
relay_log = /data/mysql/my3306/relaylog
# 中继日志存放路径

relay_log_index = /data/mysql/my3306/relaylog.index
# 同 relay_log,定义 relay_log 的位置和名称

#binlog_checksum = CRC32
# Session-Thread 把 Event 写到 Binlog 时,生成 checksum。默认为(NONE),兼容旧版本 mysql。

master_verify_checksum = ON
# Dump-Thread 读 Binlog 中的 Event 时,验证 checksum

slave_sql_verify_checksum = ON
# 从库的 I /O-Thread 把 Event 写入 Relaylog 时,生成 checksum;从库的 SQL-Thread 从 Relaylog 读 Event 时,验证 checksum

master_info_repository = TABLE
relay_log_info_repository = TABLE
# 将 master.info 和 relay.info 保存在表中,默认是 Myisam 引擎,官方建议改为 Innodb 引擎,防止表损坏后自行修复。 

relay_log_purge = ON 
relay_log_recovery = ON
# 启用 relaylog 的自动修复功能,避免由于网络之类的外因造成日志损坏,主从停止。

skip_slave_start = OFF
# 重启数据库,复制进程默认不启动

slave_net_timeout = 5
# 当 master 和 slave 之间的网络中断,slave 的 I /O-Thread 等待 5 秒,重连 master

sync_master_info = 10000
# slave 更新 mysql.slave_master_info 表的时间间隔

sync_relay_log = 10000
sync_relay_log_info = 10000
# slave 更新 mysql.slave_relay_log_info 表的时间间隔

gtid_mode = ON
enforce_gtid_consistency = ON
# GTID 即全局事务 ID(global transaction identifier),GTID 由 UUID+TID 组成的。
# UUID 是一个 MySQL 实例的唯一标识,TID 代表了该实例上已经提交的事务数量,并且随着事务提交单调递增。
# GTID 能够保证每个 MySQL 实例事务的执行(不会重复执行同一个事务,并且会补全没有执行的事务)。下面是一个 GTID 的具体形式:
# 4e659069-3cd8-11e5-9a49-001c4270714e:1-77

auto_increment_offset  = 1
# 双主复制中,2 台服务器的自增长字段初值分别配置为 1 和 2,取值范围是 1 .. 65535

auto_increment_increment = 2
# 双主复制中,2 台服务器的自增长字段的每次递增值都配置为 2,其默认值是 1,取值范围是 1 .. 65535

########################################
#                                      #
#                InnoDB                #
#                                      #
########################################

innodb_data_home_dir = /data/mysql/my3306
# innodb 表的数据文件目录

innodb_file_per_table = ON
# 使用独立表空间管理

innodb_data_file_path = ibdata1:1G:autoextend
# InnoDB 共享表空间磁盘文件,存放数据字典、和在线重做日志

innodb_log_group_home_dir = /data/mysql/my3306
# 在事务被提交并写入到表空间磁盘文件上之前,事务数据存储在 InnoDB 的 redo 日志文件里。这些日志位于 innodb_log_group_home_dir 变量定义的目录中

innodb_buffer_pool_size = 2G
# InnoDB 用于缓存数据、索引、锁、插入缓冲、数据字典的缓冲池。该值越大,缓存命中率越高,但是过大会导致页交换。

innodb_buffer_pool_instances = 8
# 开启 8 个内存缓冲池,把需要缓冲的数据 hash 到不同的缓冲池中,这样可以并行的内存读写,降低并发导致的内部缓存访问冲突。
# InnoDB 缓存系统会把参数 innodb_buffer_pool_size 指定大小的缓存,平分为 innodb_buffer_pool_instances 个 buffer_pool

#innodb_additional_mem_pool_size = 16M
# InnoDB 存储数据字典、内部数据结构的缓冲池大小,类似于 Oracle 的 library cache

innodb_log_file_size = 256M
# InnoDB redo log 大小,对应于 ib_logfile0 文件。
# ib_logfile* 是 Innodb 多版本缓冲的一个保证,该日志记录 redo、undo 信息,即 commit 之前的数据,用于 rollback 操作。
# 官方文档的建议设置是 innodb_log_file_size = innodb_buffer_pool_size/innodb_log_files_in_group

innodb_log_buffer_size = 64M
# redo 日志所用的内存缓冲区大小

innodb_log_files_in_group = 4
# redo 日志文件数,默认值为 2,日志是以顺序的方式写入。

innodb_max_dirty_pages_pct = 90
# 缓存池中脏页的最大比例,默认值是 75%,如果脏页的数量达到或超过该值,InnoDB 的后台线程将开始缓存刷新。
#“缓存刷新”是指 InnoDB 在找不到干净的可用缓存页或检查点被触发等情况下,InnoDB 的后台线程就开始把“脏的缓存页”回写到磁盘文件中。

innodb_flush_log_at_trx_commit = 1
# 设置为 0,每秒 write cache flush disk
# 设置为 1,每次 commit 都 write cache flush disk
# 设置为 2,每次 commit 都 write cache,然后根据 innodb_flush_log_at_timeout(默认为 1s)时间 flush disk

innodb_lock_wait_timeout = 10
# InnoDB 有其内置的死锁检测机制,能导致未完成的事务回滚。但是,如果结合 InnoDB 使用 MyISAM 的 lock tables 语句或第三方事务引擎, 则 InnoDB 无法识别死锁。
# 为消除这种可能性,可以将 innodb_lock_wait_timeout 设置为一个整数值,指示 MySQL 在允许其他事务修改那些最终受事务回滚的数据之前要等待多长时间(秒数)。

innodb_sync_spin_loops = 40
# 自旋锁的轮转数,可以通过 show engine innodb status 来查看。
# 如果看到大量的自旋等待和自旋轮转,则它浪费了很多 cpu 资源。浪费 cpu 时间和无谓的上下文切换之间可以通过该值来平衡。

innodb_support_xa = ON
# 第一,支持多实例分布式事务(外部 xa 事务),这个一般在分布式数据库环境中用得较多。
# 第二,支持内部 xa 事务,即支持 binlog 与 innodb redo log 之间数据一致性。

#innodb_file_format = barracuda
# InnoDB 文件格式,Antelope 是 innodb-base 的文件格式,Barracude 是 innodb-plugin 后引入的文件格式,同时 Barracude 也支持 Antelope 文件格式。

innodb_flush_method = O_DIRECT
# 设置 innodb 数据文件及 redo log 的打开、刷写模式,fdatasync(默认),O_DSYNC,O_DIRECT
# 默认是 fdatasync,调用 fsync()去刷数据文件与 redo log 的 buffer
# 设置为为 O_DSYNC 时,innodb 会使用 O_SYNC 方式打开和刷写 redo log, 使用 fsync()刷写数据文件
# 设置为 O_DIRECT 时,innodb 使用 O_DIRECT 打开数据文件,使用 fsync() 刷写数据文件跟 redo log

innodb_strict_mode = ON
# 开启 InnoDB 严格检查模式,在某些情况下返回 errors 而不是 warnings,默认值是 OFF

innodb_checksum_algorithm = strict_crc32
# checksum 函数的算法,默认为 crc32。可以设置的值有:innodb、crc32、none、strict_innodb、strict_crc32、strict_none

innodb_status_file = 1
# 启用 InnoDB 的 status file,便于管理员查看以及监控

innodb_open_files = 3000
# 限制 Innodb 能打开的表的数据,默认为 300,数据库里的表特别多的情况,可以适当增大为 1000。 

innodb_thread_concurrency = 8
# 同时在 Innodb 内核中处理的线程数量。服务器有几个 CPU 就设置为几,建议默认值。

innodb_thread_sleep_delay = 500

#innodb_file_io_threads = 16
# 文件读写 I / O 数,这个参数只在 Windows 上起作用。在 LINUX 上只会等于4,默认即可。

innodb_read_io_threads = 16
# 设置 read thread(读线程个数,默认是 4 个)

innodb_write_io_threads = 16
# 设置 write thread(写线程个数,默认是 4 个)

innodb_io_capacity = 2000
# 磁盘 io 的吞吐量,默认值是 200. 对于刷新到磁盘页的数量,会按照 inodb_io_capacity 的百分比来进行控制。

log_bin_trust_function_creators = 1                  
# 开启 log-bin 后可以随意创建 function,存在潜在的数据安全问题。

innodb_purge_threads = 1
# 使用独立线程进行 purge 操作。
# 每次 DML 操作都会生成 Undo 页,系统需要定期对这些 undo 页进行清理,这称为 purge 操作。

innodb_purge_batch_size = 32
# 在进行 full purge 时,回收 Undo 页的个数,默认是 20,可以适当加大。

innodb_old_blocks_pct = 75
# LRU 算法,默认值是 37,插入到 LRU 列表端的 37%,差不多 3 / 8 的位置。
# innodb 把 midpoint 之后的列表称为 old 列表,之前的列表称为 new 列表,可以理解为 new 列表中的页都是最为活跃的热点数据。

innodb_change_buffering = all
# 用来开启各种 Buffer 的选项。该参数可选的值为:inserts、deletes、purges、changes、all、none。
# changes 表示启用 inserts 和 deletes,all 表示启用所有,none 表示都不启用。该参数默认值为 all。

[mysqldump]      
                 
max_allowed_packet = 256M

quick
# mysqldump 导出大表时很有用,强制从服务器查询取得记录直接输出,而不是取得所有记录后将它们缓存到内存中。

[mysqlhotcopy]
interactive-timeout

[mysqld_safe]
#ledir = /app/mysql/bin
# 包含 mysqld 程序的软件安装路径,用该选项来显式表示服务器位置。

感谢各位的阅读!关于“如何查看 mysql 默认读取 my.cnf 的目录”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计12263字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)