博客说明:
-
仅仅是作为个人学习的一种记录和补充,仅供参考。欢迎指正和共同进步
-
学习视频原网址:
https://www.bilibili.com/video/BV1J5411A7ei?spm_id_from=333.337.search-card.all.click
昨天知识点的一些补充
-
不想让5.7版本初始化后生成密码
- 使用
mysql --initialize-insecure
命令进行初始化
- 使用
-
mysql加载配置文件的顺序
- mysql启动时会依次加载对应位置的配置文件
- 参数替换原则:若配置文件的参数有重复,后加载的会替换先加载的参数
[root@mysql1 ~]# mysql --help --verbose |grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
- 注:若安装失败或目录与配置指定的不一致时,可以排除是否有其他配置文件没有删除/更名备份。
- 因为历史原因,Mysql配置文件一直直接放在/etc/my.cnf。建议使用/etc/mysql/my.cnf的写法,更直观。(推荐,非必须)
一、Mysql参数介绍
查看目前版本的参数
- 命令:
show variables [like '...'];
可以使用_
、%
占位符进行筛选。- Mysql-5.7.20目前的参数总数共509个(我直接用的以前安装的Mysql-5.7.20做示例)
- Mysql-5.7.20目前的参数总数共509个(我直接用的以前安装的Mysql-5.7.20做示例)
从作用域上可分为global和session
-
global全局级别的变量,对当前的mysql实例有效(有关实例的概念参照前一篇博客)
-
session会话级别的变量,仅对一次会话连接有效
-
设置/修改变量的值
-
Mysql参数修改不持久化,持久化只能改配置文件
-
global级别的变量:
set global var_name = value;
-
session级别的变量:
set [session] var_name = value;
-
示例
(root@localhost) [(none)]> show variables like 'long%query%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec) # 设置会话变量为5 (root@localhost) [(none)]> set session long_query_time = 5; Query OK, 0 rows affected (0.00 sec) # 发现会话变量已经改变 (root@localhost) [(none)]> show variables like 'long%query%'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 5.000000 | +-----------------+----------+ 1 row in set (0.00 sec) # 发现全局变量依旧是10 (root@localhost) [(none)]> show global variables like 'long%query%'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+ 1 row in set (0.00 sec) # 修改全局变量为3 (root@localhost) [(none)]> set global long_query_time = 3; Query OK, 0 rows affected (0.00 sec) #查看发现全局变量已经修改 (root@localhost)
-