MySQL数据库是一种广泛使用的关系型数据库管理系统,它依赖于大量的参数来控制SQL的处理和执行过程,这些参数可以分为静态参数和动态参数,区别在于参数值是否可以在实例的生命周期内修改并生效。
MySQL参数的分类
1. 静态参数
定义:静态参数在数据库启动期间不能被修改,设置之后必须要重启才能生效。
示例:log_slave_updates
,back_log
,log_bin
,lower_case_table_names
。
2. 动态参数
定义:动态参数在数据库启动期间能被修改,分为全局级和会话级。
全局级:参数值修改后,新创建的session中生效,但已开启的session不受影响。
会话级:参数值修改后仅对当前session生效,不影响其他session。
MySQL参数查看
1. global级参数的查看
方法一:mysql> select @@global.wait_timeout;
方法二:mysql> show global variables like '%wait_timeout%';
方法三:mysql> select * from performance_schema.global_variables where variable_name ='wait_timeout';
2. session级参数的查看
方法一:mysql> select @@wait_timeout;
方法二:mysql> select @@session.wait_timeout;
方法三:mysql> show variables like '%wait_timeout%';
方法四:mysql> show session variables like '%wait_timeout%';
MySQL配置参数详解
1. client组参数
参数 | 说明 |
port | 用来监听TCP/IP连接的端口号码,在Linux系统上,必须大于1024,默认值:3306 |
socket | Linux系统下用来监听本地连接的套接字文件,默认为/tmp/mysql.sock,可以设置为指定的目录,Windows系统下用来监听本地连接的命名空间,默认是MySQL,没有大小写限制,默认值:LINUX: /tmp/mysql.sock;WINDOWS: MySQL |
initcommand | 连接到服务器后执行的语句,此处用来设置客户端字符集,默认值:无 |
2. mysql组参数
参数 | 说明 |
prompt | 提示信息格式,改为“用户@主机 时:分:秒[数据库]”这种格式,由于h只能显示localhost,不利于分辨主机,需根据真实的主机名(hostname)替换规范值中的,默认值:无 |
3. mysqld组参数
参数 | 说明 |
server_id | 代表主从复制中主从MySQL实例的唯一ID值,一个复制集中的serverid不能相同,默认值:0 |
read_only | 设置数据库为只读模式,默认是OFF,即可读可写,为了保证生产数据的安全,防止人为失误在从库进行写操作造成数据不一致,需要在从库设置为只读模式,除super权限用户外,普通用户无法在从库写数据,默认值:OFF |
super_read_only | 设置数据库为只读模式,默认是OFF,即可读可写,为了保证生产数据的安全,防止人为失误在从库进行写操作造成数据不一致,表示super权限用户也无法在从库写数据,默认值:OFF |
port | 用来监听TCP/IP连接的端口号码,在Linux系统上,必须大于1024,默认值:3306 |
user | 用于启动MySQL数据库服务的系统用户,可以更改为任何非root的普通用户,默认值:无 |
basedir | MySQL数据库程序文件安装目录,可以指定为具体的目录,默认值:无 |
datadir | MySQL数据库数据文件存放目录,可以指定为具体的目录,默认值:无 |
tmpdir | 用于存放临时文件和临时表的目录,可以设置多个路径,在unix系统下使用冒号(:)作为分隔符,在Windows系统下使用分号(;)作为分隔符,默认值:/tmp |
character_set_server | MySQL数据库服务的字符集,5.7版本默认值为latin1,8.0版本默认值为utf8mb4,为避免早期字符集的一些问题,需要设置为utf8mb4,如果改变默认值,也得同时修改collationserver值,默认值:latin1(5.7) utf8mb4 (8.0) |
collation_server | MySQL数据库服务的字符的排序规则,5.7默认值为latin1_swedish_ci,8.0默认为utf8mb4_0900_ai_ci,需配合charactersetserver一起修改,这个规则代表默认的数据排序,按照大小写排序或者不区分大小写等,默认值:latin1_swedish_ci(5.7) utf8mb4_0900_ai_ci(8.0) |
lower_case_table_names | 用来设置数据库中所有表名区分大小与否,这里有三个取值,0代表区分大小写;1代表全部为小写;2代表数据库存放按照程序设定的值,但是后期检索的话还是按照小写 |
FAQs
问题1:如何查看MySQL的全局参数?
答案:可以通过以下几种方法查看全局参数:
方法一:mysql> select @@global.参数名;
方法二:mysql> show global variables like '%参数名%';
方法三:mysql> select * from performance_schema.global_variables where variable_name ='参数名';
问题2:如何动态修改MySQL的参数?
答案:可以使用SET命令动态修改参数,
修改全局参数:set global 参数名 = 值;
修改会话参数:set session 参数名 = 值;
需要注意的是,不是所有的参数都支持动态修改,有些参数只能在配置文件中修改并重启数据库才能生效。
以下是一个关于云数据库MySQL和MySQL数据库连接参数说明的表格:
参数名称 | 说明 | 示例值 |
数据库名 | 数据库的名称 | my_database |
用户名 | 连接到数据库的用户名 | my_user |
密码 | 连接到数据库的密码 | my_password |
主机地址 | MySQL服务所在的主机地址,通常是IP地址或域名 | 192.168.1.1 |
端口号 | MySQL服务的端口号,默认为3306 | 3306 |
连接字符集 | 连接数据库时使用的字符集,例如utf8mb4 | utf8mb4 |
连接超时 | 连接数据库的超时时间,单位为秒 | 30 |
空闲连接超时 | 空闲连接在多长时间后自动关闭,单位为秒 | 1800 |
最大连接数 | 数据库的最大连接数 | 100 |
最小空闲连接数 | 数据库的最小空闲连接数,用于维持一定数量的空闲连接以提高性能 | 10 |
连接池大小 | 连接池中维护的连接数量,用于提高数据库连接的效率 | 20 |
读取超时 | 从数据库读取数据时的超时时间,单位为秒 | 10 |
写入超时 | 向数据库写入数据时的超时时间,单位为秒 | 10 |
事务隔离级别 | 事务的隔离级别,例如READ COMMITTED、REPEATABLE READ、SERIALIZABLE等 | READ COMMITTED |
自动重连 | 当连接断开时,是否自动尝试重新连接数据库 | true |
连接验证查询 | 连接成功后,发送一个查询以验证连接是否有效 | SELECT 1 |
参数值仅为示例,实际使用时请根据您的需求进行调整。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1217695.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复