共 421 篇文章

标签:MySQL变量

MySQL Status Firewall_access_denied 数据库状态作用意思及如何正确

本站中文解释 _errors 1. MySQL status变量是MySQL提供的一种用来检测MySQL运行状态的功能,它是实时的信息,可以帮助DBA快速的检测和分析 MySQL的运行状况。 2. MySQL status变量类型: a) 连接状态变量:Uptime、Threads_connected、Connections、Aborted_connects、Max_used_connections b) 查询状态变量:Questions、Slow_queries、Select_full_join、Qcache_hits c) 日志状态变量:Bytes_received、Bytes_sent 等 d) 优化状态变量:Opened_tables、Delayed_insert_threads、Delayed_errors 等 3. Firewall_access_denied_errors是MySQL中的一个状态变量,用来记录在MySQL的请求过程中由于网络防火墙拒绝请求而导致的错误次数。它的值一般在0或者很少的数值比如1。具体值视应用场景而定。 4. 设置Firewall_access_denied_errors:要避免或减少由于网络防火墙拒绝请求而导致的错误次数,客户端可以使用以下设置来设置Firewall_access_denied_errors: a) 在MySQL服务配置文件中添加:Firewall_access_denied_errors=off b) 在客户端连接到MySQL服务器之前使用show variables语句查看Firewall_access_denied_errors参数的值。如果值为off,客户端应重新连接MySQL服务器。 c) 在服务启动时添加–firewall-access-denied-errors参数设置,参数值设置为off。 d) 在连接参数中添加firewall_access_denied_errors=off参数设置,用于重新连接MySQL数据库。 5. 总而言之,设置Firewall_access_denied_errors,可以避免或减少由于网络防火墙拒绝请求而导致的错误次数,提升MySQL的安全性。可以根据不同的场景来设置该参数,确保MySQL的安全性。

技术分享

MySQL Status Threads_connected 数据库状态作用意思及如何正确

本站中文解释 MySQL status 变量“Threads_connected”是MySQL跟踪连接线程数量的全局变量。它指示了MySQL实例当前有多少线程处于连接状态,即表示有多少个客户端正在连接MySQL到服务器。 MySQL的连接线程共有三种状态:连接状态、正常状态和空闲状态。当客户端与MySQL服务器的连接建立后,就处于连接状态。此时,MySQL就会创建一个新的连接线程,并将可用连接数量加1,从而使Threads_connected变量的值增加。当客户端发起SQL查询时,线程就会从连接状态变为正常状态;当SQL查询完成后,线程会变为空闲状态,可用连接数量就会减少。 Threads_connected 变量的值可以通过 SHOW SESSION STATUS LIKE ‘Threads_connected’或 SHOW GLOBAL STATUS LIKE ‘Threads_connected’命令来获得。由于MySQL线程要使用额外的内存,所以在设置Threads_connected变量时,应设置合理的值,否则会耗尽内存资源,从而影响MySQL的性能。 MySQL中设置Threads_connected变量的方法有两种: 1、在MySQL命令行界面中直接运行 SET GLOBAL Threads_connected=(可用连接数量) 命令来动态设置Threads_connected变量的值; 2、修改MySQL配置文件 my.cnf 中的变量 thread_concurrency 的值来设置Threads_connected变量的值。 综上所述,MySQL状态变量 Threads_connected 用来跟踪MySQL实例当前有多少客户端正在连接。我们可以使用 SHOW SESSION STATUS LIKE ‘Threads_connected’或 SHOW GLOBAL STATUS LIKE ‘Threads_connected’ 命令来获取 Threads_connected 变量的值,也可以使用 SET GLOBAL Threads_connected=(可用连接数量) 命令或修改MySQL配置文件 my.cnf 中的变量 thread_concurrency 来设置Threads_connected变量的值。

技术分享

MySQL Status Mysqlx_sessions_closed 数据库状态作用意思及如何正确

本站中文解释 用于存储一段时间内关闭的会话数量。 MySQL status 变量是 MySQL 中的一类变量,用于存储和提供一些关于当前 MySQL 服务器的的信息。它们可以用来判断 MySQL 服务器状态是否正常,例如查询失败的次数,性能如何,使用的内存量有多少,会话数量,等等。 比如 MySQL 的 Status 变量 mysqlx_sessions_closed,它用于存储一段时间内关闭的会话数量。 MySQL status 变量是动态变量,即它们会随着 MySQL 服务器的状态而变化,所以我们可以监控这些变量,了解 MySQL 服务器状态。 MySQL status 变量一般不建议直接设置,它们都是系统自动设置和更新的。但是,当修改 MySQL 服务器的某些变量时,这些 status 变量也可能受到影响。 例如,如果我们改变服务器选项 innodb_lock_wait_timeout,那么 MySQL 会更新相应的 status 变量 innodb_lock_wait_timeout,它会记录当前 innotb_lock_wait_timeout 的值。 此外,在某些情况下,也需要直接设置 MySQL Status 变量。比如一些重要的变量,如 slow_query_log_file 和 query_cache_size(表示慢记录或查询缓存的大小),这些变量用户可以自行设置。 对于手动设置的 status 变量,MySQL 是支持用 SET 命令更新的。具体格式是: SET GLOBAL 变量名=变量值。 例如,如果要把 slow_query_log_file 设为某个文件: SET GLOBAL slow_query_log_file=’/var/log/slow.log’; 以上就是MySQL status变量及用途及其设置的相关说明.

技术分享

MySQL Status Slave_open_temp_tables 数据库状态作用意思及如何正确

本站中文解释 : Slave_open_temp_tables用于记录MySQL slave上运行的临时表数量。如果临时表数量增加的趋势超过正常水平或临时表的数量已经太大了,则可以使用此值来检查是否出现了问题。 Slave_open_temp_tables并不是MySQL内部变量,可以在MySQL命令行中通过show global status命令来查看此变量当前值:   mysql> SHOW GLOBAL STATUS LIKE ‘slave_open_temp_tables’; 通常,Slave_open_temp_tables只用于监控,不需要手动设置其值,MySQL会在后台自动更新。

技术分享

MySQL Status Connection_errors_internal 数据库状态作用意思及如何正确

本站中文解释 Connection_errors_internal 状态变量用于记录内部的连接错误,以便更好的诊断MySQL。这个变量是只读的,无法手动修改,只能通过查看当前MySQL运行状态来获取。 Connection_errors_internal 变量属于持续型状态变量,列表指明了所有被发出未正确关闭的内部连接,或者被服务器拒绝的连接,该变量不会失去记录,只要MySQL服务器运行,就会一直记录这类连接错误。该变量可以用于找出错误的连接性原因,因此很有助于检查MySQL运行的正确性,并及早检测连接性能问题。 Connection_errors_internal 变量包含以下两个错误值: 1、Connection_refused_errors:该值记录了被MySQL服务器拒绝的连接数量。 2、Connection_aborted_errors:该值记录了未能正确关闭的连接的数量。 此外,如果在MySQL中使用了failover replication,那么也会记录和复制有关的内部错误。因此,Connection_errors_internal 状态变量也有助于调查 复制错误和网络故障等问题。 Connection_errors_internal 状态变量是只读的,无法人为设置。但是你可以设置其他连接相关的变量,如max_connections,max_user_connections,max_connect_errors等,来控制服务器连接上的错误发生率。有用的MySQL指令有SHOW variables、SHOW status、SHOW processlist 、SHOW global status等,可以用来查询服务器上的正在运行的进程和所有的选项参数设置,以及Connection_errors_internal 状态变量的值。

技术分享

MySQL Status Ndb_api_trans_start_count_slave 数据库状态作用意思及如何正确

本站中文解释 本状态变量跟踪从属MySQLndb 实例在复制环境中事务开始计数. MySQL 内置了许多状态变量以报告关于服务器运行情况的信息。Ndb_api_trans_start_count_slave变量跟踪从属MySQL NDB实例在复制环境中启动的事务的计数,只有在Ndb_api_trans_start_count_slave变量存在的情况下才表明从属机器的MySQL NDB使用复制。 MySQL的状态变量设置相当简单,可以通过SHOW获取变量值,或者可以使用SET设置变量值。例如,要查看Ndb_api_trans_start_count_slave变量的值,可以使用以下命令: SHOW GLOBAL STATUS LIKE ‘Ndb_api_trans_start_count_slave’; 要设置这个变量的值,请使用以下命令: SET GLOBAL Ndb_api_trans_start_count_slave=; 在MySQL 5.5.5及更高版本中,也可以使用临时命令来设置变量值。例如: SET SESSION Ndb_api_trans_start_count_slave=; 而获取变量值可以使用以下两个命令: SHOW GLOBAL STATUS LIKE ‘Ndb_api_trans_start_count_slave’; 或 SELECT @@GLOBAL Ndb_api_trans_start_count_slave; 从上面的操作过程可以看到,对于MySQL的状态变量来说,设置和获取操作都非常简单,只需要使用正确的命令即可完成。

技术分享

MySQL Status Ndb_api_trans_abort_count_session 数据库状态作用意思及如何正确

本站中文解释 变量及用途 Ndb_api_trans_abort_count_session变量用于表示会话期间发生事务回滚的次数,主要用于发现MySQL中事务的死锁和其他死锁的情况。 Ndb_api_trans_abort_count_session变量的值是一个整数,用于记录会话期间发生事务回滚的次数。 Ndb_api_trans_abort_count_session变量是MySQL状态变量中的一个,可以通过MySQL show status命令来查看当前会话期间发生事务回滚的次数。 Ndb_api_trans_abort_count_session变量不需要设置,它只是MySQL内置的一个状态变量,系统会根据不断发生的事务回滚,自动计算和更新会话期间发生事务回滚的次数。此变量仅用于监控系统,便于发现MySQL中事务的死锁和其他死锁的情况。 要监控当前会话的事务回滚的次数,只需要在MySQL shell中执行“show status like “Ndb_api_trans_abort_count_session”;”命令即可。 如果你要查看当前会话期间发生事务回滚的总次数,你可以使用变量 Ndb_api_trans_abort_total_session,这个变量会记录会话期间发生的事务回滚的总次数,如果你要查看当前会话期间发生事务回滚的总次数,只需要在MySQL Shell中输入“show status like “Ndb_api_trans_abort_total_session”;”即可。 要定期监控变量 Ndb_api_trans_abort_count_session 的值,你可以在MySQL Shell中创建一个脚本,在一段时间内定时重复获取这个变量的值,并记录下来,以便观察会话期间发生事务回滚的次数是否稳定,如果该变量的值出现异常,即可更深入研究MySQL中可能存在的死锁情况。

技术分享

MySQL Status Ndb_api_bytes_received_count 数据库状态作用意思及如何正确

本站中文解释 Ndb_api_bytes_received_count是MySQL数据库管理系统中的一个变量,它用来记录从远程API传输到本地的字节数量。这个变量很重要,因为它可以帮助我们更好的理解每个API的性能,从而及时发现性能瓶颈,并作出合理的优化建议。 Ndb_api_bytes_received_count是一个全局变量,不能单独针对某个API设置,仅可在MySQL数据库实例中修改其值。要设置该变量,首先可以在MySQL客户端中使用SHOW VARIABLES LIKE ‘Ndb_api_bytes_received_count’命令查看当前该变量的值。如果不满意,可以使用下面的SET命令来修改: SET NDB_API_BYTES_RECEIVED_COUNT= 上述命令可以将变量的值更新为指定的数值,从而让Ndb_api_bytes_received_count变量受到控制。 Ndb_api_bytes_received_count变量在MySQL数据库中使用非常广泛,主要是因为它能有效地监测远程API传输到本地的字节数量,它可以用来识别性能瓶颈,并及时作出合理的优化建议。以便能够及时有效地改进MySQL性能。

技术分享

MySQL Status Not_flushed_delayed_rows 数据库状态作用意思及如何正确

本站中文解释 MySQL status 变量是MySQL 服务器状态及性能指标的重要参数,它可以帮助DBA监控MySQL的性能、跟踪问题和优化MySQL。下面针对MySQL status变量 Not_flushed_delayed_rows,对其进行详细说明及用途如何设置。 Not_flushed_delayed_rows变量表示还没有被刷新到硬盘上的延迟写入行(delayed write-rows)的总数。MySQL支持MyISAM表及ARIA表使用延迟写入(delayed write)来提高性能,延迟写入会将插入、更新和删除的数据暂时放在内存缓冲区中,而不是立即刷新到硬盘上。延迟写入能把对MyISAM表和ARIA表的写操作批量写入磁盘文件,从而节约磁盘IO,减少OS处理磁盘的开销,提升查询的效率。 Not_flushed_delayed_rows变量的用处十分重要,它是查看延迟写入的性能的一个参数。当这个变量的值持续持高时,就可能是延迟写入IO失去了作用;当这个变量值过高时,表明MySQL对硬盘的IO操作太多;当这个变量值为0时,表明MySQL没有使用延迟写入特性,这种时候很有可能MyISAM表或ARIA表并没有定义delayed_key_write选项。 要获得MySQL status变量 Not_flushed_delayed_rows的值,可以使用命令行工具SHOW GLOBAL STATUS: SHOW GLOBAL STATUS LIKE ‘%not_flushed_delayed_rows%’; 因为不同的MySQL版本和存储引擎,MySQL的默认延迟写入设置会有一些不同: MySQL 5.1及以前的版本: 仅支持MyISAM表使用delayed_key_write。如果你的MySQL版本低于5.1,那么可以通过在MyISAM表结构中设置delayed_prefix_write来启用延迟写入机制。 MySQL 5.2及以后的版本: MySQL在5.2以后加入了ARIA存储引擎,它也可以使用延迟写入。在MySQL 5.2或以后的版本中,MyISAM表可以通过设置delayed_prefix_write,而ARIA表可以通过设置delayed_options来设置延迟写入。 通过设置延迟写入的属性可以有效的节省MySQL的IO开销。要想使MyISAM或ARIA表使用延迟写入,就必须在表的结构中启用其delayed_key_write或delayed_options属性: 1、MyISAM表:在CREATE TABLE或ALTER TABLE语句中加入: DELAY_KEY_WRITE=1 2、ARIA表:在CREATE TABLE或ALTER TABLE语句中加入: DELAY_OPTIONS=1 如果你想查看MyISAM或ARIA表中是否设置了延迟写入,可以使用如下语句: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE DELAY_KEY_WRITE = 1 OR DELAY_OPTIONS = 1; 不过要注意,虽然延迟写入有助于提升性能,但它也会造成MySQL损失数据的风险。所以当你的应用程序出现大量写入时,比较保险的做法是取消延迟写入。要取消延迟写入,你可以执行命令: FLUSH TABLES tblName WITH READ WRITE; 总之,MySQL status变量 Not_flushed_delayed_rows代表还没有被刷新到硬盘上的延迟写入行(delayed write-rows)的总数,可以用来监控延迟写入的性能,以便调整设置保证MySQL的最佳性能,而且设置了延迟写入的属性,MyISAM表和ARIA表通过设置delayed_key_write和delayed_options属性可以实现延迟写入,从而节省MySQL的IO开销,但也要注意不要出现丢失数据的风险,所以当一定条件成立的时候,应该及时取消延迟写入。

技术分享

MySQL Status Ongoing_anonymous_gtid_violating_transaction_count 数据库状态作用意思及如何正确

本站中文解释 MySQL status变量是用以检测MySQL服务器有多少正在操作的匿名GTID违反事务计数。MySQL 事务会使用 Global Transaction IDs (GTIDs) 来跟踪和管理事务,防止在分布式状态中出现问题,例如回滚潜在的失败数据。如果正在执行的事务不包含 GTID,或者执行的 GTID 无效,则会发生违反。 MySQL status变量Ongoing_anonymous_gtid_violating_transaction_count用于查看违反事务的数量,也可以用来排查MySQL复制错误或GTID错误等问题。 设置MySQL status变量Ongoing_anonymous_gtid_violating_transaction_count的步骤如下: 1.首先,使用以下查询来查看任何当前的Ongoing_anonymous_gtid_violating_transaction_count变量: SHOW GLOBAL VARIABLES LIKE ‘Ongoing_anonymous_gtid_violating_transaction_count’; 2.使用以下查询来查看任何在执行的MySQL事务, SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST; 3.检查GTID违反的事务。 4.找出违反GTID事务的原因,并解决它们。 5.最后,重置Ongoing_anonymous_gtid_violating_transaction_count变量。 SET GLOBAL Ongoing_anonymous_gtid_violating_transaction_count=0;

技术分享