MySQL - 2

这篇文章带来有关MySQL内容的讲解,将对于选项配置文件和mysql客户端命令进行一定讲解和如何从.sql文件执行SQL语句。希望大家能够有所收获

目录

选项(配置)文件

使用方法

选项文件位置及加载顺序

Windows下读取选项文件

Linux系统下读取配置文件

选项文件语法

mysql客户端命令

[命令结尾格式 ; \g \G](#命令结尾格式 ; \g \G)

[命令列表查看 - help/-h](#命令列表查看 - help/-h)

[help contents命令](#help contents命令)

从.sql文件执行SQL语句

source命令导入

使用mysql客户端直接导入


选项(配置)文件

大多数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 中断当前输入 > ![](https://i-blog.csdnimg.cn/direct/36f117f8a3364d55a505c6cbea000609.png) ### 命令列表查看 - help/-h **在当前模式下,mysql还可以通过help或者\\h来查看命令列表** ![](https://i-blog.csdnimg.cn/direct/7d6c0c3874874f8f9c09c862492a88c4.png) ![](https://i-blog.csdnimg.cn/direct/33709673492a4a5d9124fe05811f5c0e.png) ### help contents命令 使用 help contents 命令可以**查看关于 MySQL 数据库使用的具体帮助**,包括用户管理、SQL 语法、数据类型、组件等相关内容列表。 ![](https://i-blog.csdnimg.cn/direct/633d001cfa294aaba3221047ea1e75a9.png) 上面是展示可以通过help能够查看的具体帮助,下面例子就是使用help去查看其中的Data Types ![](https://i-blog.csdnimg.cn/direct/ef0cc61546c54eba9c57f7dc06f41e72.png) ## 从.sql文件执行SQL语句 ### source命令导入 ++使用场景:开发环境---\>测试环境---\>生产环境++ 有时候我们需要**从 .sql 文件执行一些 SQL 语句** ,比如**要把一个数据库从一台服务器 A 复制到另一台服务器 B** 上,那么可以**先从服务器 A 导出数据到 .sql 文件,然后在服务器 B 执行这个 .sql 文件** ,在上一小节,用 help 命令查看命令列表,可以看到有一个 source 命令如下所示: ![](https://i-blog.csdnimg.cn/direct/eb52b78ed2a245cb8d2b9fc2907e2670.png) ![](https://i-blog.csdnimg.cn/direct/76f773893e4a459bac9b050d6a2071af.png) source描述是:执行一个SQL脚本文件,以文件名作为参数 > **\\. \[sql文件的绝对路径\]** > > tips: sql文件路径这里也可以用相对路径(执行mysql的路径),为了避免错误建议使用绝对路径 ![](https://i-blog.csdnimg.cn/direct/56756c0850064d88a63fbeed880f0db0.png) ### 使用mysql客户端直接导入 直接使用 mysql 客户端程序导入 .sql 文件并执行相应的 SQL 语句,可以使用以下命令: > 1. mysql db_name \< test_file > > # 在指定的数据库下执行SQL,前提是数据库必须提前创建好 > > 2. mysql \< test_file > > # 不指定数据库,sql中必须要有use \[database_name\],来指定要操作的数据库 ![](https://i-blog.csdnimg.cn/direct/888c06f2dee34eb6bd063c4810f709df.png) 当然也要记得在后面加上自己的用户和密码...... 有了这个办法,就不需要登录mysql再去执行命令了,可以自己写一个对应的脚本就可以自动的帮我们完成这个任务! *** ** * ** *** ![](https://i-blog.csdnimg.cn/direct/a88db0e8edde432f9762e67caada9cd2.png)

相关推荐
y = xⁿ1 小时前
MySQL学习笔记:乐观锁VS悲观锁/八股总结
笔记·学习·mysql
2301_775148151 小时前
如何授权AWR报告生成_GRANT SELECT ANY DICTIONARY诊断权限
jvm·数据库·python
空中海2 小时前
Redis 专家实战:生产架构设计 × 容量规划 × 安全治理 × 37道高频面试题全解
数据库·redis·安全
地球资源数据云2 小时前
1951-2025年中国逐年1千米逐月总降水量区域统计数据集_年表_县
大数据·数据结构·数据库·数据仓库·人工智能
l1t2 小时前
DeepSeek v4辅助生成的单文件SQL查询示例页面
javascript·数据库·sql
云飞云共享云桌面2 小时前
精密机械制造工厂研发部门使用SolidWorks和ug,三维设计云桌面如何选择?
大数据·运维·服务器·网络·数据库·人工智能·制造
IntMainJhy3 小时前
【flutter for open harmony】第三方库 Flutter 二维码生成的鸿蒙化适配与实战指南
数据库·flutter·华为·sqlite·harmonyos
それども3 小时前
Spring Bean 注入的优先级顺序
java·数据库·sql·spring
张子行的博客3 小时前
SQL 调优实战:跨表排序性能提升之路
数据库·sql·oracle