MySQL程序和选项文件配置
1.MySQL程序简介
Linux系统程序一般在/usr/bin目录下,可以通过命令查看:
Windows系统目录:你的安装路径\MySQL Server 8.0 \bin,也可以通过命令查看:
以下是MySQL常用的程序:
mysqld是mysql程序后台进程相当于是一个服务器,剩下的都是客户端也就是mysql的工具。
2.mysqld-MySQL服务器介绍
mysqld也被称为MySQL服务器,是一个多线程程序,对数据目录进行访问管理(包含数据库和表)。数据目录也是其他信息(如日志文件和状态文件)的默认存储位置。
当MySQL服务器启动的时候,会侦听指定的端口,处理来自客户端程序的网络连接,并管理不同客户端对数据库的访问。
3.mysql-MySQL命令行客户端
3.1mysql客户端简介
mysql是一个简单的SQL shell,可以输入命令行和执行sql语句,当执行sql语句的,查询结果是以ASCII表格式显示
mysql的基本使用非常简单,回顾一下连接数据库的方式。
连接mysql服务器,长选项格式。
短选项格式。
3.2mysql客户端选项
3.2.1指定选项的方式
在mysql后面的命令行中列出选项
在mysql后面指定配置文件的路径,以便在程序启动时读取配置文件中的选项并解析对应程序选项的值,并应用在启动参数中。
使用环境变量中的选项
3.2.2mysql客户端命令常用的选项
注意:如果选项的值中包含空格,那么值需要包含在双引号中
3.2.3在命令行中使用选项
命令行中指定选项遵循以下规则:
选项应在程序名之后给出
选项以单破折号"-"或双破折号"--"号开头,-表示短格式,--表示长格式,例如-?和--help都表示MySQL程序显示他的帮助信息
选项名称区分大小写。-v和-V都是合法的,但含义不同,他们分别是--verbose和--version选项的相应的缩写形式
--verbose尽可能详细的显示结果。
某些选项需要在后面指定一个值。例如,-h 127.0.0.1或--host=127.0.0.1表示指定客户端的程序指定MySQL服务器主机。
对于带值的长格式选项,通常用=符号分隔选项名称和值。对于带值的短选项,选项值可以紧跟在选项之后,也可以用空格隔开,例如:--host=127.0.0.1、-h127.0.0.1和-h 127.0.0.1是等价的。但是对于密码选项的短格式,如果指定密码,选项与值之间不能有空格。
注意:在命令行中,第一个不带破折号-的值被解析为要访问数据库名,所以--database选项一般可以省略。
在选项名称中,破折号(-)和下划线(_)在大多数情况下可以互换使用,但前导破折号不能转为下划线,例如--skip-grant-tables和--skip_grant_tables是等价的。
对于采用数值的选项,该值可以带有后缀K,M或G以指示乘数1024,1024^2或1024^3,例如,以下命令告诉mysqladmin对服务器执行1024次ping,每次ping之间休眠3秒。
在命令行中包含空格的选项值必须用引号引起来。例如,--execute(or -e)选项与mysql一起使用时,表示将一个或多个SQL语句发送服务器执行并显示结果。
3.3选项(配置)文件
大多数MySQL程序都可以从选项文件(配置文件)中读取启动选项。可以在选项文件中指定常用选项,这样就不用在每次运行程序时都在命令中输入它们。大部分选项文件都是纯文本格式,可以使用任何文编辑器创建。
3.3.1使用方法
选项--default-file可以指定要使用的选项文件,客户端程序会读取并应用选项文件中的相关配置。
客户端配置文件:
服务器配置文件:
虽然把客户端与服务端的配置文件做了区分,但是我们一般不会分别在对应的配置文件中配置,而是把所有的配置都写在默认的配置文件中,便于维护和管理。
Windows下配置文件
C:\ProgramData\MySQL\MySQL Server 8.0\my.ini是windows下默认的配置文件路径
如果在使用MySQL程序时没有指定配置文件的路径,那么会自动读取默认路径下的配置文件。
3.3.2选项文件位置及加载顺序
MySQL按以下表格中的顺序查找并读取选项文件,如果文件不存在则需要手动创建。
读取顺序从上到下,后读取的文件中配置的选项优先级越高
3.2.2.1在Windows系统读取选项文件
对于两个文件配置了相同的选项,那么优先级高的文件就覆盖掉优先级低的文件中的选项。
"C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"这个是常用的操作配置文件路径
3.2.2.2在Unix和Linux系统上读取的选项文件
在Windows系统中配置文件的后缀名为.ini和.cnf
在Linux系统中配置文件的后缀名为.cnf
3.3.3选项文件语法
运行mysql程序是在命令行上指定任何长选项都可以在选项文件中指定,要获取选项列表可以使用如下命令:
选项文件指定选项的时候,省略两个前导破折号,并且每一行表示一个选项。
例如:--quick和--host=127.0.0.1在选项文件中表示成quick和host=127.0.0.1
选项文件中的空行会被忽略。非空行可以采用一下任何形式:
#comment,;comment
注释以#或;开,注释可以从一行的中间开始
[group] 节点
设置选项的程序或组的名称,不区分大小写,如果选项组名称与程序名称相同,则组中选项专门应用于该程序,例如,[mysqld]和[mysql]组分别适用于mysqld服务端程序和mysql客户端程序
opt_name=value
选项名对应的值,可以使用转义序列\b,\t,\n,\r,\\,\s来表示退格符,制表符,换行符,回车符,反斜杠符和空格符。
注意:
1.选项名称和值中的前导和尾随空格会自动删除
2.在windows系统中设置路径应该使用转义字符
[client]mysql发行版中所有的客户端程序都会被读取并应用这个组下的选项(除了mysqld)在这个组下可以指定适用所有客户端程序的通用选项,例如配置用户名和密码。
可以通过[客户端程序名]的形式为不同的客户端程序指定选项,例如[mysql],当运行mysql程序时会读取并应用组下的配置,如果选项名为[client]重复,[client]中的选项将会被覆盖。
为特定的mysql版本设置选项可以适用[mysql-5.7],[mysql-8.0]的组名。
在选项文件中适用!include指令来包含其他选项文件,例如:!include dir /etc/mysql/conf.d/具体的配置文件路径
在选项文件中使用!includ指令来搜索指定目录中的其他选项文件,例如:!include/home/mydir,但不保证目录中选项文件的读取顺序。
注意:
1.!include在unix和linux操作系统中会搜索指定目录下任何以.cnf为后缀的文件
在Windows中,会搜索指定目录下任何以.ini或.cnf为后缀的文件
2.只会读取包含文件中当前客户端的组配置,例如当前运行的是mysql程序,那么只会读取[mysql]组中的选项配置
在Windows中确保在配置文件的最后一行加一个换行符,否则改行将被忽略。
3.3.4设置客户端全局编码格式
在linux下编辑全局配置文件默认位置/etc/mysql/my.cnf,初始内容如下:
注意:在每次修改配置文件之前要先做好备份,如果发生错误可以恢复到之前版本。