这篇文章带来有关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: > > 1. ; 与 \\g 结束表示以表格形式展示结果 > > 2. \\G 结束表示以行形式展示结果 > > 3. 如果当前已经输入了一部分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 语句,可以使用以下命令: > 1. mysql db_name \< test_file > > # 在指定的数据库下执行SQL,前提是数据库必须提前创建好 > > 2. mysql \< test_file > > # 不指定数据库,sql中必须要有use \[database_name\],来指定要操作的数据库  当然也要记得在后面加上自己的用户和密码...... 有了这个办法,就不需要登录mysql再去执行命令了,可以自己写一个对应的脚本就可以自动的帮我们完成这个任务! *** ** * ** *** 