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,这个就看你的硬件儿配置了,那么重点的参数我就介绍这么多吧,还有一些其他的参数,比如说这个缓存的大小,等将来我再讲数据表儿的时候用到这个参数了,那我就再给大家去详细的讲解吧。