MySQL配置信息查看修改
拾年一剑 人气:0摘要
当在不同团队间使用MySQL数据库时,最好是保证数据库的配置信息是一致的,否则会因为不同开发同事的SQL规范不一样,导致出现一些不必要的SQL问题;
本篇博客,主要记录如何查看数据的配置信息,及相关解释。
查看
查看数据基本信息
查看版本
查看版本 select version(); 显示所有可用的字符集; SHOW CHARACTER SET; 只显示包含utf8的字符集; SHOW CHARACTER SET LIKE '%utf8%'; 显示所有的校对规则; SHOW COLLATION; 只显示包含utf8的校对规则; SHOW COLLATION LIKE '%utf8%';
查询sql_mode
select @@global.sql_mode; select @@sql_mode;
确保一致,否则容易出问题;
查看在配置文件中定义的变量
mysqld --help --verbose
查看MySQL的服务当前运行时的变量
SHOW [{GLOBAL|SESSION}] VARIABLES [LIKE '']; SELECT @@{GLOBAL|SESSION}.VARIABLE_NAME; SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME'; SELECT * FROM INFORMATION_SCHEMA.SESSION_VARIABLES WHERE VARIABLE_NAME='VARIABLE_NAME';
显示MySQL所有的系统变量
SHOW VARIABLES;
常用查询
查个别信息,通过like过滤:
show variables like '%datadir%'; show variables like '%basedir%'; SHOW VARIABLES LIKE 'character%'; SHOW VARIABLES LIKE 'collation_%';
是否大小写敏感
show Variables like '%table_names';
lower_case_table_names=0 区分大小写
lower_case_table_names=1 表示不区分大小写
如何修改?
注意:
mysql 8.0以前,可以通过,先停止mysql服务,再修改配置文件(如lower_case_table_names=1),再重启mysql服务的方式来修改;
mysql8.0 要求我们不能在initialize之后再更改lower_case_table_names 的值,也就是说,再通过更改 my.cnf 文件是不管用的。所以需要删除原来的所有数据,我的数据目录是在/user/local/mysql/data/,进入到该目录进行删除,默认的路径为:/var/lib/mysql 删除该路径下的所有文件即可
查看MySQL默认认证方式
show global variables like '%default_auth%';
也支持修改。详见下面修改的章节。
举例,下面是静态修改:
# vi /etc/my.cnf [mysqld] default_authentication_plugin = mysql_native_password
修改MySQL的系统变量
根据变量修改的方式
动态变量:可以在MySQL运行时调整其指,并立即生效;
例如:
set global sort_buffer_size=value
静态变量:需要在配置文件中修改,重启服务后生效;例如:/etc/my.cnf
根据变量的生效范围
全局变量:服务级别的设定,对整个服务生效,所有回话,当时已经连接的不生效,重新连接才生效;
例如:
set global sort_buffer_size=value
会话变量:仅对当前会话生效,其他会话和新会话不受影响;会话结束值即销毁;
例如:
set session sort_buffer_size=value
总结
加载全部内容