1.4 MySql配置文件

既然我们开始学习数据库,就不能像大学里边讲数据库课程那样简单讲一下,增删改查,然后介绍一下怎么去创建索引,怎么提交和回滚事务。我们学习数据库要明白怎么用,怎么配置,学懂学透彻了。当然MySql的配置参数上百个,由于课程时间有限,所以我会挑选其中最重要的一些参数给同学们介绍一下。

我们知道MySql的配置文件叫做my.ini,这个配置文件里面能设置的东西非常的多,包括了数据库的字符集,端口号儿,数据目录的地址和日志文件等等,即便有再多的内容,从结构上看是可以分为三大块儿的,那这三大块儿第一块儿是client信息,这里边配置的是图形界面儿的设置。而第二块儿是MySql信息,这里配置的是命令行客户端的设置,那么第三块儿就是mysqld的信息,这里配置的是数据库的设置。

马上我们就要去打开mysql的配置文件了,所以我建议各位同学首先安装一个变色记事本的工具,因为Windows自带的记事本儿工具,打开配置文件,它里边的文字没有变色,所以看上去阅读起来非常的困难,所以说我建议同学们一定要安装一个变色记事本儿的工具,比如说有两个工具是我比较推荐的。第一个叫做notepad,加另外一个是微软出品的叫vscode,这两款变色记事本儿的工具都是免费的。你安装哪一个都行,安装的过程也非常的简单,不需要额外的去设置,直接就下一步就可以了。

现在我们打开my.ini文件。那么这个 # 是mysql里边的注解儿,所以说加 # 的部分就是一个注解儿的文字。那么这些文字不会并不会说让数据库启动的时候加载它们,这些注解儿文字数据库都会忽略掉的,所以说这些注解儿文字写的东西还挺多的,所以一会儿会把这些注解儿文字都给删掉。

下面写的东西就是port等于3306,因为这个client设置的是客户端的连接的一些设置。所以说下面的这个port等于3306,说的是如果客户端在连接数据库的时候没有指明这个端口儿,那么默认就连接3306端口。然后再往下,这个no-beep是什么意思?这个mysql配置的是命令行儿的这个客户端,那么命令行儿客户端里边在执行一些SQL语句的时候。如果执行出现了一些错误,不要发出这个蜂鸣菇,这个蜂鸣器的那个声音,因为我们主板有那个蜂鸣器,所以在开启电脑的时候这个主板会响一声儿,这个就是蜂鸣器的声音。

比如说咱们数据库默认端口儿在安装数据库的时候,咱们在图形界面儿里面可以设置,如果说那个时候你没设置,然后翻回头,你要想改的话没关系,我们改配置文件也可以把这个

1.port的参数,比如说你改成80008005,比如说90009200,反正你挑一个空闲的端口儿就行了。这是说了一下端口儿的这个修改,额外我说一句,就算是我们要改这个配置文件,改完以后保存,那怎么让这个配置文件生效?上一节课儿,我在这个powershell这个窗口儿里面告诉大家,这个关闭mysql服务的那个指令叫做night空格儿,stop空格儿,mysql80对吧?是把这个mysql服务停掉,然后也讲过怎么去开启mysql的服务,所以说我们修改完这个mysql的配置文件,你要想让它生效,最简单的办法就是mysql把mysql服务关上,然后重新再打开就行了。这样子,如果说你的配置文件写的没有问题,那么买mysql启动是没有问题的,是可以正常启动的。

2.datadir这个参数它配的是什么?

配的是数据目录所以我们看一下这个数据目录的地址,正好是那个隐藏目录。下面有一个叫做data的目录,对,这就是存放mysql数据的一个目录,后面儿我是加上我自己写的注解,让大家看得清楚一点儿。所以在后面儿加上 #号注解是没有问题的,这个是不会引发语法错误,那有同学说老师,那比如说我现在想让我的这个mysql的数据目录迁移到,比如说D盘迁移到其他的盘符下,可不可以?可以,那你就把这个data目录这个拷贝一下,拷贝到其他的目录地址下面,然后你把这个参数修改一下,同时去重新启动一下,mysql 服务就可以了,这样子咱们的这个数据目录就迁移到其他的盘。

3.mysql的密码认证插件

4.mysql默认的存储引擎

mysql数据库很有意思,它是支持很多存储引擎的,当然它自带了一些存储引擎。比如说my ISM引擎,比如说我们现在最经典的一个引擎叫做inno DB。我们用的最多的这个引擎就叫做inno DB,因为这个引擎是支持事务的,有了事务机制以后,我们才能保存重要的数据。如果没有事务机制,像那个my ISM引擎,它就不适合保存重要的数据。

5.sql-mode 设置数据库模式的

那么在这里边打开的这个模式,是开启了严格的模式,什么叫严格儿模式?就是以前这个mysql数据库,在对一些数据类型儿的检查上,并不是很严格,比如说我规定了这个数据表里边某一个字段,比如说类型儿是字符串的,但是你往这个字段里面保存了一个数字,mysql也是允许的,他会把这个数字转成字符串儿,然后再保存,这是比较宽泛的一个数据的一个模式。但是我们换上这个严格模式以后,那就没有这个数据类型转换了,数据类型不对,那对不起,我就直接给你抛错,你就不能存是这意思。

6.log-output

log这个名字上理解起来就是日志的文件呗,对吧?日志输出的意思,那我们来看它的值等于file,就是说用文件来记录mysql的日志。那这个日志的这个功能默认是被关上的,它的这个值是0,默认是没有开启日志文件的。

7.日志文件名称

再往下就是如果说开启了日志文件,那这个日志文件的名字叫什么?那么这块儿规定了一个日志的文件名字,当然你可以改,改成你自己喜欢的名字都可以的,名字都可以,但是你要想打开这个日志的功能,这块儿的值必须得是一,这是我提醒你一下

8.慢查询日志

然后再往下就是mysql的这个慢查询日志的这个功能是否要开启,因为mysql,在执行这个sql语句的时候,有的sql语句执行的很快,有的sql语句半天也没有执行完,所以说我们在优化这个数据库的时候,在查找为什么这个sql语句执行速度这么慢,查找原因的时候,我们必须得记录这个sql语句执行的一个过程,所以说我就必须要记载下来这个过程,那就是用文件来记录。所以这个是slow query log,这个等于一就开启了慢查询日志,然后我下面有些参数可以规定,就是说这个sql语句执行的时间超过多少秒,就会被判定是执行速度比较慢,我们要记录它。所以这里面我可以规定,比如说10秒,超过10秒,你这个sql语句还没有执行完,那对不起,我就一定要把你算作是慢查询的sql了。慢查询文件名称也可以随便修改,但是要把mysql文件重启之后才会生效

9.log-error 错误日志

再往下就是mysql的这个错误日志,如果有错误信息,那就直接是保存到这个文件里边就行了,这个是错误的这个日志的配置,

10.server-id

server-id对我们来说并不是很重要,什么时候会用到这个参数?就是mysql集群的时候会用到它。因为我们用多个mysql数据库组成集群,那我一定是要区分好这些数据库,它们之间的区别,拿什么来区别?那就是用它们的这个ID值。这个ID值只能是整数,那么也就是说组建集群的时候,这些少这些数据库节点的ID值前提是整数,而且不能重复就可以了,这样子我们就能把它组建起集群了,但是现在我们是单节点单击去用这个mysql,所以这个server-id等于1等于100,等于1万,对我来说都没什么影响,所以这个参数我们就略过。

11.lower_case_table_names

lower case table names等于1,代表什么意思?就是说我们在创建表儿的时候,这个表名儿就算你大写了,那么在保存的时候,我也要把这个表名儿统一存成是英文的小写

12.导入导出目录地址

比如说我想把某一些表儿的数据导出来,那这个导出的这个数据存放在什么目录下面?包括导入数据,也是你想把某一个文件的数据导入到mysql里面,那你就把文件保存到目录里面,然后我们用sql语句就能把数据导入了。

13.最大连接数

然后再往下这个参数叫做max_connections,这个是mysql最大支持的连接的客户端的数量,那么是151。当然这个值可以根据我们的硬件儿条件可以改大一些,如果说改成2000,或者改成2万,你不是硬件儿服务器的配置估计是带不起来的。

14.线程数量

然后再往下还有一个参数,我要重点的说一下,就是这个线程的数量,大家看一下,我们也知道计算机是多线程的,那么这个数据库它的这个读写速度能提升,也是托了多线程的服,那这里这个线程数量默认是10,我也不用去改。因为大家都是台式机的,这个家用机的这个配置并不是硬件儿服务器的配置,所以说这个值我就不去改了,如果说你是在数据库服务器上,这个值可以改大一些。比如说你把这个值改成20,改成30,这个就看你的硬件儿配置了,那么重点的参数我就介绍这么多吧,还有一些其他的参数,比如说这个缓存的大小,等将来我再讲数据表儿的时候用到这个参数了,那我就再给大家去详细的讲解吧。

相关推荐
夜泉_ly2 小时前
MySQL -安装与初识
数据库·mysql
qq_529835353 小时前
对计算机中缓存的理解和使用Redis作为缓存
数据库·redis·缓存
月光水岸New5 小时前
Ubuntu 中建的mysql数据库使用Navicat for MySQL连接不上
数据库·mysql·ubuntu
狄加山6755 小时前
数据库基础1
数据库
我爱松子鱼5 小时前
mysql之规则优化器RBO
数据库·mysql
chengooooooo6 小时前
苍穹外卖day8 地址上传 用户下单 订单支付
java·服务器·数据库
Rverdoser7 小时前
【SQL】多表查询案例
数据库·sql
Galeoto7 小时前
how to export a table in sqlite, and import into another
数据库·sqlite
人间打气筒(Ada)7 小时前
MySQL主从架构
服务器·数据库·mysql
leegong231117 小时前
学习PostgreSQL专家认证
数据库·学习·postgresql