陕西省住房与建设厅网站,保定网站建设服务平台,备份wordpress到百度云,广州网站商城建设目录 一、配置文件
二、MySQL参数 一、配置文件
配置文件目录#xff1a;/etc
注意#xff1a;首行缩进的均为示例#xff0c;主要参数不能作为生产环境依据#xff0c;建议在DBA指导下配置。更新中
[rootrabbitmq_1 etc]# vim my.cnf
//因为mysql在启动时候#xff0…目录 一、配置文件
二、MySQL参数 一、配置文件
配置文件目录/etc
注意首行缩进的均为示例主要参数不能作为生产环境依据建议在DBA指导下配置。更新中
[rootrabbitmq_1 etc]# vim my.cnf
//因为mysql在启动时候会先读取my.cnf这个配置文件把账号密码放进去就不需要在输入能直接登录。
[client] //表示所有客户端登录进去使用到的参数
userroot
passwordxxxxxx
socket/var/lib/mysql/mysql.sock //指定socket文件路径 进入mysql 使用 show variables like socket;查看[mysql]://表示mysql登录进去之后的配置参数
prompt(\\u\\h) [\\d]\\_
prompt\\u\\d \\R:\\m mysql(rootlocalhost) [(none)] show databases;(rootlocalhost) [(none)] use mysql;(rootlocalhost) [mysql] [mysqldump]
single-transaction 1
master-data1[mysqld]://表示mysql服务器启动时候的参数
prot 3306
log-binmysql-binexpire_logs_days 7 #mysql8.0以下版本binlog保存时效 以天为单位默认0为永不过期
binlog_expire_logs_seconds #mysql8.0以上版本binlog保存时效 以秒为单位默认的binlog过期时间为2592000秒也就是30天binlog_format row #默认为mixed混合模式更改成row复制为了数据一致性
server_id 1
log_error mysql.err //默认是机器名.err 建议统一修改成mysql.errsync_binlog1#这个参数控制二进制日志binlog的同步方式。设置为1意味着每次事务提交时binlog都会被同步到磁盘这有助于保证数据的完整性但可能会降低性能。在高I/O压力的系统上可以考虑将其设置为0或2这样可能会提高性能但牺牲了一定的数据完整性保障。
max_connections2000 #允许的最大并发连接数。超过这个数的连接请求将会被拒绝。
max_connect_errors100000 #在一定时间内允许的最大连续连接错误次数。超过这个数后服务器可能会拒绝新的连接请求直到计数器重置。
datadir /var/lib/mysql/
default_password_lifetime0 //密码永不过期
bind_address * //我当前的mysql 绑定在哪个IP地址上 默认是*这样是不安全的通常来说数据库是不允许外部用户访问的。建议绑定内网的IPmysql只能绑定一个IP
sql_mode ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
#设置mysql导出路径
secure_file_priv/tmpreplicate-do-db // 指定需要复制的数据库replicate-do-dbdb1,db2
replicate-ignore-db // 指定不需要复制的数据库。replicate-ignore-dbdb3
replicate-do-table // 指定需要进行同步的表。replicate-do-tabledb1.table1replicate-do-tabledb2.table2
replicate-ignore-table // 指定不需要进行同步的表。replicate-ignore-tabledb3.table3# charset
character-set-serverutf8 //设置默认字符集
lower_case_table_names 1 //表示表名大小写不敏感。如果你想保留表名的原始大小写则将其值设置为 0。mysql8.0之后lower_case_table_names 配置必须在安装好 MySQL 后初始化 mysql 配置时才有效。一旦 mysql 启动后再设置是无效的而且启动报错。max_binlog_cache_size4G #二进制日志缓存的最大大小。这个缓存用于临时存储即将写入binlog文件的数据。如果缓存满了数据会被写入binlog文件。设置合适的缓存大小可以平衡磁盘I/O和CPU的使用。
max_binlog_size1G #单个二进制日志文件的大小限制。当达到这个大小后MySQL会自动开始写入一个新的文件
tmp_table_size96M 和 max_heap_table_size96M #临时表的最大和默认大小。当一个查询需要一个临时表时MySQL会使用内存来存储这个临时表。如果这个表的大小超过tmp_table_sizeMySQL会使用磁盘存储这个临时表这通常会降低性能。#replication 主从都要配置
relay_log_recovery 1 //IO 线程高可用 设置为 1可以在从服务器启动时自动进行中继日志的恢复以确保数据一致性。
relay_log_info_repository table // SQL线程高可用 设置为 table可以将中继日志信息保存到表中以提高中继日志的持久性和可靠性。
slave_parallel_typeLOGICAL_CLOCK //指定并行复制的类型.可以设置为 NONE不使用并行复制、DATABASE按数据库进行并行复制或 LOGICAL_CLOCK根据逻辑时钟进行并行复制。其中LOGICAL_CLOCK 是 MySQL 8.0 引入的新特性可以更加精确地控制并行复制的顺序和速度避免数据冲突和延迟。
slave_parallel_workers4 --指定并行复制的工作线程数可以根据系统资源和负载情况进行调整。通常情况下建议将并行复制的工作线程数设置为 CPU 核心数的两倍或三倍以达到最佳的性能和吞吐量。//GTID 开启GTID需要依赖几个参数 需注意gtid_mode on //开启了 GTID 模式
log_slave_updates 1 //设置为 1 当设置为主从复制中的从服务器时这个参数确保从服务器上的更新会被记录到二进制日志中。这使得从服务器可以作为其他从服务器的源。enforce_gtid_consistency on //强制在所有事务提交时检查 GTID 一致性确保所有操作都遵循 GTID 的规则从而提高数据复制的一致性和可靠性。
replicate-wild-do-table // 使用通配符来指定需要进行同步的表。只有与通配符匹配的表的操作才会被复制到从服务器。replicate-wild-do-tabledb1.%replicate-wild-do-tabledb2.%
replicate-wild-ignore-table // 使用通配符来指定不需要进行同步的表。与通配符匹配的表的操作将不会被复制到从服务器。replicate-wild-ignore-tabledb3.%// 增强半同步
plugin_dir/usr/lib64/mysql/plugin
plugin-loadrpl_semi_sync_master:rpl_semi_sync_master.so;rpl_semi_sync_slave:rpl_semi_sync_slave.so
rpl_semi_sync_master_enabled1 //启用了半同步复制的主服务器端它表示主服务器会等待至少一个从服务器确认已成功接收并写入了中继日志relay log中的事务数据然后才认为事务提交成功。
rpl_semi_sync_slave_enabled1 //启用了半同步复制的从服务器端从服务器会在接收到事务数据后向主服务器发送确认信号。
rpl_semi_sync_master_timeout100000 //设置了主服务器等待从服务器响应的超时时间单位是毫秒。在超时之后主服务器将继续正常的异步复制操作。# session memory 设置会话级别的内存默认 256K。详见三、mysql参数页
sort_buffer_size 32M
tmp_table_size 32M#innodb
innodb_buffer_pool_size 1024M #设置 InnoDB 缓冲池的大小用于缓存数据和索引。建议将其设置为系统可用内存的 70-80%。例如如果服务器有 8GB 内存可以将其设置为 6GB。
innodb_buffer_pool_instances8 #将InnoDB缓冲池分成多个实例。这有助于提高并发性能尤其是在高并发的场景下。
innodb_log_buffer_size16M #日志缓冲区的大小。用于暂存即将写入日志文件的数据。
innodb_log_file_size1G #日志文件的大小。太大的日志文件可能导致恢复时间变长而太小的日志文件可能导致文件数量过多。
innodb_log_files_in_group2 #一个日志组中的日志文件数量。InnoDB使用多个日志文件来确保日志的持久性。
innodb_file_per_table1 #为每个表使用单独的数据文件。这提供了更好的表空间管理但会增加元数据文件的I/O负担。
innodb_flush_log_at_trx_commit1 #在事务提交时刷新日志。设置为1确保数据安全性但可能会降低性能。
innodb_flush_methodO_DIRECT #指定如何刷新数据和日志到磁盘。O_DIRECT可以减少操作系统缓存的使用提高I/O效率。
innodb_data_file_pathibdata1:268M;ibdata2:1024M:autoextend #数据文件的路径和大小。这里定义了两个数据文件ibdata1和ibdata2以及它们的大小和自动扩展的策略。
innodb_lock_wait_timeout 10 # MySQL版本8.0默认等待锁的时间为 50 秒超过 50 秒事务会自动回滚此设置为10秒bulk_insert_buffer_size64M #批量插入操作使用的缓冲区大小。这可以加速大量数据的插入操作。
sort_buffer_size16M #每个线程用于排序操作的缓冲区大小。当执行排序操作时MySQL会使用这个缓冲区来存储临时数据。
join_buffer_size16M #用于连接操作的缓冲区大小。当执行连接操作时MySQL会使用这个缓冲区来存储临时数据。
plugin-load-addvalidate_password.so #动态加载验证密码插件validate_password.so。这用于密码验证和密码策略检查。
validate-passwordFORCE_PLUS_PERMANENT #设置密码验证插件的选项为FORCE_PLUS_PERMANENT表示强制执行密码策略并且密码过期策略为永久有效。
connection-controlFORCE #设置连接控制插件的选项为FORCE表示强制执行连接控制规则。
connection-control-failed-login-attemptsFORCE #设置连接控制插件的选项表示强制执行失败登录尝试的限制规则。如果达到限制次数连接将被拒绝。
connection_control_failed_connections_threshold 6 #设置失败连接尝试的阈值为6次达到这个阈值后连接将被拒绝一段时间。
connection_control_max_connection_delay 86400 #设置最大的连接延迟时间为86400秒24小时。如果一个连接尝试被延迟它将等待这么长时间才能建立连接。//设置会话级别
transaction-isolation READ-COMMITTED----------------------
# slow log 记录慢查询 相关参数详见 五、mysql体系结构
slow_query_log 1
slow_query_log_file slow.log
long_query_time 10 //设置慢查询的值执行超过这个值的sql回被保存打慢查询日志中
#min_examined_row_limit 100 //扫描行数少于该值的sql不记录到慢查询日志
log_queries_not_using_indexes on //将没有使用索引的sql记录到慢查询日志
log_throttle_querles_not_using_indexes 10 //限制每分钟记录没有使用索引sql语句的次数
log_output FILE //慢查询日志的格式 file、table、none//默认是 FILE 文件格式也可以保存到表中在mysql 这个库里边 slow_log//就是说 将log_output 设置为table 的话就会保存在slow_log这张表里。set global log_output table;
explicit_defaults_for_timestamptrue #当设置为true时TIMESTAMP列将使用显式的默认值而不是自动的当前时间戳。这有助于在某些场景下避免时间戳的不一致问题
open_files_limit65535 #打开文件的最大数量限制。这包括表文件、日志文件等。超过这个限制可能会导致新的文件无法打开。--------------------
//通用日志
general_log 1 //开启通用日志记录
general_log_file general.log //日志文件名//多实例用到的标签
[mysqld1] 表示新部署一个mysql示例
port 3307
datadir /mdata/data1
scoket /tmp/mysqld.socket1[mysqld-5.6] // 他表示这个标签下的参数只会在启动mysql5.6版本时候才会读取启动别的版本 这个参数不会生效在特定版本中生效
innodb_flush_neighbors2//告诉mysql当前启动时候调用的程序是哪些关闭的程序是哪些、日志是哪些
[mysqld_multi]
mysqld/usr/local/mysql/bin/mysqld_safe
mysqladmin/usr/local/mysql/bin/mysqladmin
log/usr/local/mysql/mysqld_multi.log二、MySQL参数
查看mysql参数配置文件他是遵循替换原则
[rootrabbitmq_1 mysql]# mysql --help |grep my.cnforder of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
查看mysql所有参数
show variables;
1、查看error日志存放路径
(rootlocalhost) [performance_schema] show variables like log_error;
------------------------------------
| Variable_name | Value |
------------------------------------
| log_error | /var/log/mysqld.log |
------------------------------------2、查看datadir目录
(rootlocalhost) [performance_schema] show variables like datadir;
--------------------------------
| Variable_name | Value |
--------------------------------
| datadir | /var/lib/mysql/ |
--------------------------------3、查看当前慢查询的值这个值就是执行的sql超过10就会被定义为慢查询回被记录到慢查询日志中。
(rootlocalhost) [performance_schema] show variables like long_query_time;
----------------------------
| Variable_name | Value |
----------------------------
| long_query_time | 10.000000 |
----------------------------4、设置当前回话的值超过1.5秒的会被记录.
(rootlocalhost) [performance_schema] set long_query_time 1.5;5、查看全局的值
(rootlocalhost) [performance_schema] show global variables like long%query_time;6、设置全局会话值超过1.5秒的会被记录.
(rootlocalhost) [performance_schema] set global long_query_time 1.5
//默认是10秒如果想要永久生效可以在mysql 配置文件my.cnf中添加参数然后重启mysql生效。
long_query_time 107、查询排序用到的内存如果在查询中使用了order by来做排序但是又没有合适的索引可以调大这个内存来提高查询速度。只针对当前会话级别
(rootlocalhost) [test] show variables like sort_buffer_size;
--------------------------
| Variable_name | Value |
--------------------------
| sort_buffer_size | 262144 | 256K大小
--------------------------
--调整大小
(rootlocalhost) [test] set sort_buffer_size 256*1024*1024;
Query OK, 0 rows affected (0.00 sec)
--查看调整后的结果
(rootlocalhost) [test] show variables like sort_buffer_size;
-----------------------------
| Variable_name | Value |
-----------------------------
| sort_buffer_size | 268435456 |
-----------------------------
--查看全局 是不会变得
(rootlocalhost) [test] show global variables like sort_buffer_size;
--------------------------
| Variable_name | Value |
--------------------------
| sort_buffer_size | 262144 |
--------------------------8、查看当前会话排序的状态
(rootlocalhost) [test] show status like sort%;
--------------------------
| Variable_name | Value |
--------------------------
| Sort_merge_passes | 0 |
| Sort_range | 0 |
| Sort_rows | 24 |
| Sort_scan | 3 |
--------------------------
--清零
(rootlocalhost) [test] flush status;
--查看全局的当前服务器的整个的状态如果Sort_merge_passe 非常大的话就建议调大 sort_buffer_size参数
(rootlocalhost) [test] show global status like sort%;9、临时表参数 group by 分组时候会用到临时表。
(rootlocalhost) [test] show variables like %tmp%;
--------------------------------------------
| Variable_name | Value |
--------------------------------------------
| default_tmp_storage_engine | InnoDB |
| innodb_tmpdir | |
| internal_tmp_mem_storage_engine | TempTable |
| slave_load_tmpdir | /tmp |
| tmp_table_size | 16777216 |
| tmpdir | /tmp |
--------------------------------------------
有一个参数是 tmp_table_size 默认是16m如果查询的数据量比较大可以设置这个参数大一点。
(rootlocalhost) [test] show status like %tmp%;
--------------------------------
| Variable_name | Value |
--------------------------------
| Created_tmp_disk_tables | 0 |
| Created_tmp_files | 7 |
| Created_tmp_tables | 6 |
--------------------------------10、查看sql模式建议把sql模式设计成5.7的模式。
(rootlocalhost) [test] show variables like sql_mode;
--------------------------------------------------------------------------------------------------------------------------------------
| Variable_name | Value |
--------------------------------------------------------------------------------------------------------------------------------------
| sql_mode | ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION |
--------------------------------------------------------------------------------------------------------------------------------------11、查看插件位置
(rootlocalhost) [(none)] show variables like %plugin%;
---------------------------------------------------------
| Variable_name | Value |
---------------------------------------------------------
| default_authentication_plugin | caching_sha2_password |
| plugin_dir | /usr/lib64/mysql/plugin/ |
---------------------------------------------------------12、查看半同步相关信息
(rootlocalhost) [(none)] show variables like rpl%;13、查看半同步状态
(rootlocalhost) [(none)] show status like rpl%;
显示当前正在运行的数据库连接和它们的相关信息
(rootlocalhost) [performance_schema] show processlist;
-------------------------------------------------------------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info |
-------------------------------------------------------------------------------------------------------------
| 4 | event_scheduler | localhost | NULL | Daemon | 3582 | Waiting on empty queue | NULL |
| 12 | root | localhost | performance_schema | Query | 0 | starting | show processlist |
-------------------------------------------------------------------------------------------------------------
查询我当前连接的ID
(rootlocalhost) [performance_schema] select connection_id();
-----------------
| connection_id() |
-----------------
| 12 |
-----------------
查询每一个会话的级别的变量的值是多少
(rootlocalhost) [performance_schema] select * from variables_by_thread where VARIABLE_NAMElong_query_time;
--------------------------------------------
| THREAD_ID | VARIABLE_NAME | VARIABLE_VALUE |
--------------------------------------------
| 51 | long_query_time | 10.000000 |
--------------------------------------------
根据这个线程ID 查询出他的进程ID
(rootlocalhost) [performance_schema] select * from threads where thread_id51 limit 1 \G