这篇文章带来有关MySQL内容的讲解,将对于选项配置文件和mysql客户端命令进行一定讲解和如何从.sql文件执行SQL语句。希望大家能够有所收获
目录
[命令结尾格式 ; \g \G](#命令结尾格式 ; \g \G)
[命令列表查看 - help/-h](#命令列表查看 - help/-h)
[help contents命令](#help contents命令)
选项(配置)文件
大多数MySQL程序都可以从选项文件(配置文件)中读取启动选项。
可以在选项文件中指定常用选项,这样就不用在每次运行程序时都在命令行中输入它们。
大部分选项文件都是纯文本格式,可以使用任何文本编辑器创建。
使用方法
选项 --default-file 可以指定要使用的选项文件,客户端程序会读取并应用选项文件中的相关配置
如果在使用MySQL程序时,没有指定配置文件的路径,那么会自动读取默认路径下的配置文件
大部分配置文件在linux中都是放在/etc下的,像mysql就是在/etc/mysql中放着对应的配置文件
选项文件位置及加载顺序
MySQL按以下表格的顺序查找并读取选项文件,如果文件不存在则需要手动创建
读取顺序从上到下,后读取的文件中配置的选项优先级越高(优先级越高的文件,配置相同选项,将覆盖对应的选项)
Windows下读取选项文件
| 文件名 | 说明 |
|---|---|
| %WINDIR%\my.ini , %WINDIR%\my.cnf | 全局 |
| C:\my.ini , C:\my.cnf | 全局 |
| BASEDIR \my.ini , BASEDIR \my.cnf BASEDIR(mysql的安装路径) | 全局 |
| defaults-extra-file | 如果存在其他选项⽂件可以通过 --defaults-extra-file 选项指定 |
| %APPDATA%\MySQL\.mylogin.cnf | 登录路径选项(仅限客⼾端) |
| DATADIR \mysqld-auto.cnf | 系统变量(仅限服务器) |
常用操作配置文件路径:C:\ProgramData\MySQL Server 8.0 \my.ini
Linux系统下读取配置文件
| 文件名 | 说明 |
|---|---|
| /etc/my.cnf | 全局 |
| /etc/mysql/my.cnf | 全局 |
| $MYSQL_HOME/my.cnf | 服务器特定选项(仅限服务器) |
| default-extra-file | 如果存在其他选项文件可以通过 --default-extra-file选项指定 |
| ~/.my.cnf | 用户特定选项 |
| ~/.mylogin.cnf | 用户特定的登录路径选项(仅限客户端) |
| DATADIR/mysqld-auto.cnf | 系统变量(仅限服务器) |

所有的配置文件都会被加载

只使用指定的配置文件
在Windows系统中配置文件的后缀名为.ini或.cnf
在Linux系统中配置文件的后缀为.cnf
选项文件语法
运行MySQL程序时,在命令行上指定的任何长选项都可以在选项文件中指定,要获取选项列表可以使用如下命令:
客户端程序
mysql --help
服务器程序
mysqld --verbose --help
选项文件中指定选项时,省略两个前导破折号,并且每一行表示一个选项
例如:--quick和--host=127.0.0.1在选项文件中应表示成quick和host=127.0.0.1
选项文件中的空行会被忽略,非空行可以采取以下形式:
#comment, ;comment
注释行以% 或 ;开始,注释可以从一行的中间开始
group --- 节点
设置选项的程序或组的名称,不区分大小写。 ++如果选项组名称与程序名称相同,则组中的选项专门应用于该程序,例如,mysqld和mysql组分别适用于mysqld服务端程序和mysql客户端程序++
opt_name
相当于命令行上的选项名
opt_name=value
选项名对应的值,可以使用转义序列\b, \t, \n, \r, \\ 和 \s来表示退格符、制表符、换行符、回车符、反斜杠和空格字符
Tips:
1.选项名称和值中的前导和尾随空格会自动删除
2.在Windows系统中设置路径应该使用转义字符
basedir="C:\\Program Files\\MySQL\\MySQL Server 8.0"
basedir="C:/Program Files/MySQL/MySQL Server 8.0"
1.client MySQL发行版中所有客户端程序都会读取并应用这个组下的选项(除了mysqld),在这个组下可以指定适用于客户端程序的通用选项,例如配置用户名和密码(要确保只有自己才可以访问这个文件,防止密码泄露)
2.可以通过客户端程序名的形式为不同的客户端程序指定选项,例如mysql,当运行mysql程序时会读取并应用该组下的配置,如果选项名与client重复,client中的选项将会被覆盖(客户端程序名优先级高于client)
1.为特定MySQL版本设置选项可以使用mysqld-5.7、mysqld-8.0的组名
2.在选项文件中使用!include 指令来包含其他选项文件,例如!include /home/mydir/myopt.cnf(具体的配置文件路径)
3.在选项文件中使用!includedir指令来搜索指定目录中的其他选项文件,但不保证目录中选项文件的读取顺序是否一致
例如:
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/
Tips:
1.!includedir在Unix和Linux操作系统中会搜索指定目录下任何以.cnf为后缀的文件,在Windows中,会搜索指定目录下任何以.ini或.cnf为后缀的文件
2.只会读取包含文件中当前客户端的组配置,例如当前运行的是mysql程序,那么只会读取mysql组中的选项配置
在Windows中要确保在配置文件的最后一行加一个换行符,否则该行将被忽略
mysql客户端命令
命令结尾格式 ; \g \G
使用mysql客户端程序连接到数据库服务器之后,可以发送SQL语句到服务器执行,并以";"(分号)、\g 或 \G 结束。
TIPS:
; 与 \g 结束表示以表格形式展示结果
\G 结束表示以行形式展示结果
如果当前已经输入了一部分SQL语句想重新输入可以输入 Control+C 中断当前输入

命令列表查看 - help/-h
在当前模式下,mysql还可以通过help或者\h来查看命令列表


help contents命令
使用 help contents 命令可以查看关于 MySQL 数据库使用的具体帮助,包括用户管理、SQL 语法、数据类型、组件等相关内容列表。

上面是展示可以通过help能够查看的具体帮助,下面例子就是使用help去查看其中的Data Types

从.sql文件执行SQL语句
source命令导入
++使用场景:开发环境--->测试环境--->生产环境++
有时候我们需要从 .sql 文件执行一些 SQL 语句 ,比如要把一个数据库从一台服务器 A 复制到另一台服务器 B 上,那么可以先从服务器 A 导出数据到 .sql 文件,然后在服务器 B 执行这个 .sql 文件 ,在上一小节,用 help 命令查看命令列表,可以看到有一个 source 命令如下所示:


source描述是:执行一个SQL脚本文件,以文件名作为参数
\. sql文件的绝对路径
tips: sql文件路径这里也可以用相对路径(执行mysql的路径),为了避免错误建议使用绝对路径

使用mysql客户端直接导入
直接使用 mysql 客户端程序导入 .sql 文件并执行相应的 SQL 语句,可以使用以下命令:
- mysql db_name < test_file
在指定的数据库下执行SQL,前提是数据库必须提前创建好
- mysql < test_file
不指定数据库,sql中必须要有use database_name,来指定要操作的数据库

当然也要记得在后面加上自己的用户和密码......
有了这个办法,就不需要登录mysql再去执行命令了,可以自己写一个对应的脚本就可以自动的帮我们完成这个任务!
