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 --- 节点

设置选项的程序或组的名称,不区分大小写。 ++如果选项组名称与程序名称相同,则组中的选项专门应用于该程序,例如,mysqldmysql组分别适用于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.7mysqld-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,前提是数据库必须提前创建好

  1. mysql < test_file

不指定数据库,sql中必须要有use database_name,来指定要操作的数据库

当然也要记得在后面加上自己的用户和密码......

有了这个办法,就不需要登录mysql再去执行命令了,可以自己写一个对应的脚本就可以自动的帮我们完成这个任务!


相关推荐
2603_965148114 小时前
如何解析JSON数据?API返回的商品信息处理教程
开发语言·数据库·python·自动化·json·api
ltl4 小时前
RocksDB 经典故障排查:L0、compaction 与 write stall
数据库
xfhuangfu5 小时前
Oracle中建立到CDB和PDB的连接
数据库·oracle·rpc
小小龙学IT6 小时前
DuckDB 深度实战:用 C++ 在进程内跑一个「分析型数据库」
数据库·c++
NineData6 小时前
DTCC 2026 预告|NineData CEO& 创始人叶正盛:面向 AI Agent 的数据库 DevOps 与数据复制实践
数据库·人工智能·数据库开发·devops·ninedata·数据库技术·dtcc
J_bean7 小时前
MySQL 事务是否必须手动开启?
数据库·mysql·数据库事务·自动提交·手动提交
J_bean7 小时前
MySQL InnoDB 如何检测死锁、判定死锁、处理死锁
数据库·mysql·死锁·死锁检测·处理死锁·死锁判定
浪子明X7 小时前
从 MongoDB 文档到关系模型:构建可重跑、可对账的数据迁移流水线
数据库·mongodb·oracle
杜子不疼.7 小时前
国产数据库撑起固井软件自主化:金仓 × 中海油服「海恒 Cemsol」落地解析
数据库
隔窗听雨眠7 小时前
GBase 8s并发控制深度解析:封锁机制、隔离级别与死锁处理全攻略
服务器·数据库·oracle