销售网站的技巧,什么网站可以接室内设计做,做网站白云,网站建设利润 有多少目录 前言
一、MySQL 程序简介
二、mysqld -- MySQL 服务器
三、mysql -- MySQL 客户端
1. mysql 客户端简介
2. mysql 客户端选项
#xff08;1#xff09;指定选项的方式
#xff08;2#xff09;mysql 客户端命令常用选项
#xff08;3#xff09;在命令行中使…目录 ·前言
一、MySQL 程序简介
二、mysqld -- MySQL 服务器
三、mysql -- MySQL 客户端
1. mysql 客户端简介
2. mysql 客户端选项
1指定选项的方式
2mysql 客户端命令常用选项
3在命令行中使用选项
3. mysql 客户端命令
1connect\r
2status\s
3delimiter\d
4exit 与 quit\q
5tee(\T) 与 notee(\t)
6prompt\R
7source\.
8system\!
9help contents
4.从 .sql 文件中执行 SQL语句
1使用 source 命令导入
2使用 mysql 客户端导入
·总结 ·前言 本篇文章将会介绍 MySQL 中常见程序 mysqld 与 mysql 的基本概念以及详细介绍 mysql 客户端程序的使用这里我们会介绍 mysql 客户端命令的常用选项使用 mysql 客户端从 .sql 文件中执行 SQL 语句下面开始本篇文章的内容介绍。
一、MySQL 程序简介 在我们安装完 MySQL 后通常会包含如下的程序 Linux 系统中安装完 MySQL 程序一般在 /usr/bin 目录下可以通过命令查看 Windows 系统中安装完 MySQL 程序会在目录安装目录\MySQL Server [版本号]\bin可以通过命令查看 可以观察到在安装完 MySQL 后还有很多的其他程序在这里面我们常用的 MySQL 程序及作用如下表所示
MySQL 常用程序 程序名作用mysqldMySQL 的守护进程即 MySQL 服务器要使用 MySQL 服务器 mysqld 必须正在运行状态。mysqlMySQL 客户端程序用于交互式输入 SQL 语句或以批处理模式从文件执行 SQL 的命令行工具。mysqlcheck用于检查、修复、分析和优化表的表维护客户端。mysqldump将 MySQL 数据库转储到 SQL、文本或 XML 文件中的客户端。mysqlimport将文本文件导入到表的客户端工具。mysqladmin执行管理操作的客户端例如创建或删除数据库、重新加载授权表、将表刷新到磁盘以及重新打开日志文件。mysqladmin 还可以用于从读取检索版本、进程和状态信息。mysqlshow显示数据库、表、列和索引信息的客户端。mysqldumpslow用于读取和汇总慢速查询日志内容的实用程序。mysqlbinlog从二进制日志中读取 SQL 语句的实用程序。mysqlbinlog 文件中包含的已执行 SQL 语句的日志可用于从崩溃中恢复数据。mysqlslap客户端负载工具模拟多个客户端同时访问 MySQL 服务器并报告每个阶段的使用时间。 在上表所介绍的这些 MySQL 常用程序中只有 mysqld 是服务端的程序它属于后台程序其他的那些都是我们在使用 MySQL 时客户端的工具。
二、mysqld -- MySQL 服务器 mysqld 也被称为 MySQL 服务器这是一个多线程程序对数据目录进行访问管理包含数据库和表。数据目录也是其他信息如日志文件和状态文件的默认存储位置。当 MySQL 服务器启动时会侦听指定的端口、来处理来自客户端程序的网络连接并管理不同客户端对数据库的访问。关于客户端与 mysqld 服务程序的关系如下图所示 mysqld 程序有许多选项可以在启动时指定运行以下命令可以查看完整的选项列表
mysqld --verbose --help 有关 MySQL 服务器的更多介绍我会在后面文章中进行详细介绍。
三、mysql -- MySQL 客户端
1. mysql 客户端简介 mysql 是一个简单的 SQL shell可以输入命令和执行 SQL 语句当执行 SQL 语句时查询结果以 ASCII 表格显示关于 mysql 的基本使用非常简单下面我们来回顾一下连接数据库的方式打开终端并输入以下命令
# 连接 MySQL 服务器长选项格式
mysql --useruser_name --password [db_name] 执行命令过程及结果如下图所示 # 短选项格式
mysql -uuser_name -p [db_name] 执行命令过程及结果如下图所示 关于这两种连接数据库的命令后面都有一个可选的参数 [db_name] 我们可以在连接数据库时指定我们要连接其中哪个数据库具体的演示如下图所示 下面我们就来详细介绍 mysql 客户端的使用方法。
2. mysql 客户端选项
1指定选项的方式 在 mysql 客户端指定选项的方式有以下三种 在 mysql 后面命令行中列出选项在 mysql 后面指定配置文件的路径以便在程序启动时读取配置文件中的选项并解析对应程序选项的值应用在启动参数中使用环境变量中的选项。 下面我们介绍的指定选项方式主要以前两种为主第三种并不常用。
2mysql 客户端命令常用选项 mysql 客户端命令常用选项如下表所示
选项--长格式短格式说明--host-h连接指定主机上的 MySQL 服务默认 127.0.0.1 或 localhost使用方式--hosthost_name-hhost_name。--port-PTCP/IP 连接使用的端口号默认 3306使用方式--portport_num-Pport_num。--user-u用于连接到 MySQL 服务器的用户名使用方式--useruser_name-uuser_name。--password-p用于连接到 MySQL 服务器的密码。可选如果连接 MySQL 服务器时没有给出这个选项会提示用户输入使用方式--password[password]-p[password]。--defauts-file使用指定的配置文件如果该文件不存在就会发生错误使用方式--defaults-filefile_name。--default-character-set使用方式--default-character-setcharset_name其中 charset_name 将作为客户端和当前连接的默认字符集如utf8mb4。--database-D用于指定要使用的数据库使用方式--databasedb_name-Ddb_name。--compress-C如果可能压缩客户端和服务器之间传输的所有信息使用方式--compress-C。--reconnect如果客户端与服务器的连接丢失自动尝试重新连接使用方式--reconnect。--quick-q不缓存查询结果收到一行打印一行如果输出被挂起可能会降低服务器速度使用方式--quick-q。--protocol用于连接到服务器的传输协议默认为 TCP使用方式--protocol{TCP|SOCKET|PIPE|MEMORY}。--delimiter设置 SQL 语句分隔符默认值是分号;标记 SQL 语句的结束使用方式--delimiterstr。--execute-e执行指定的 SQL 语句并退出使用方式--executestatement-estatement。--version-V显示版本信息并退出使用方式--version-V。--help-?显示帮助信息并退出使用方式--help-?。 这里我们指定选项的值要注意一点如果选项的值中包含空格那么值需要包含在双引号中。
3在命令行中使用选项 在命令行中指定选项应遵循以下规则 选项应在程序名之后给出选项以单破折号 “-” 或双破折号 “--” 开头- 表示短格式-- 表示长格式例如-? 和 --help 都表示 MySQL 程序显示他的帮助信息操作命令如下 mysql -?
mysql --help 选项名称区分大小写。-v 和 -V 都是合法的但是所表达的含义不同它们分别是 --verbose尽可能详细的显示结果 和 --version 选项对应缩写的格式操作命令如下 # 以下两个等价
mysql --verbose
mysql -v# 以下两个等价
mysql --version
mysql -V 某些选项需要在后面指定一个值。例如-h 127.0.0.1 或 --host127.0.0.1 表示向客户端程序指定 MySQL 服务器主机操作命令如下 mysql -h 127.0.0.1
mysql --host127.0.0.1 对于带值的长格式选项通常用 符号分隔选项名称和值对于带值的短选项选项值可以紧跟在选项之后也可以用空格隔开例如--host127.0.0.1、-h127.0.0.1、-h 127.0.0.1 这三种写法是等价的但是对于密码选项的短格式如果要指定密码选项与值之间不可以有空格解释如下 mysql -ptest # test 表示密码但没有指定要访问的数据库
mysql -p test # test 表示指定了访问的数据库但是没有指定密码 注意在命令行中第一个不带破折号 - 的值被解析成要访问的数据库名所以 --database 选项一般可以省略。 在选项名称中破折号-和下划线_在大多数情况下可以互换使用,但是前导破折号不能转为下划线例如--skip-grant-tables 和 --skip_grant_tables 是等价的。 对于采用数值的选项该值可以带有后缀 KM 或 G 以表示乘数 1024,1024^2 或 1024^3命令示例如下 # 使用 mysqladmin 对服务器执行 1024 次 ping每次 ping 之间休眠 3 秒
mysqladmin --count1k --sleep3 ping -uroot -p 在命令行中包含空格的选项值必须用引号引起来例如--executeor -e选项与 mysql 一起使用时表示将一个或多个 SQL 语句发送给服务器执行并显示结果命令执行过程及结果如下图所示 3. mysql 客户端命令 在我们使用 mysql 客户端程序连接到数据库服务器之后可以发送 SQL 语句到服务器并以“;”分号、\g 或 \G 结束我们要注意以下几点 ; 与 \g 结束表示以表格形式展示结果效果如下图所示 \G 结束表示以行形式展示结果效果如下图所示 如果当前已经输入了一部分 SQL 语句想要重新输入可以输入 CtrlC 中断当前输入效果如下图所示 在当前的模式下mysql 还有一组自己的命令我们可以使用 help 或者 \h 查看命令列表输入命令过程及结果如下图所示 下面我就对上面列出的全部命令中的部分命令做一个详细介绍及演示。
1connect\r 这条指令所执行的操作是重新连接服务器具体操作及效果如下图所示 2status\s 这条指令所执行的操作是查看服务器的状态具体操作及效果如下图所示 3delimiter\d 这条指令所执行的操作是重新指定 SQL 语句的结束标识符具体操作及效果如下图所示 4exit 与 quit\q 这两条指令的短格式都是 \q它们所执行的操作都是一样的退出 mysql 客户端程序具体操作及效果如下图所示 5tee(\T) 与 notee(\t) 这两条指令是搭配使用的指令 tee 所执行的操作是把所有执行结果保存到一个指定的文件中指令 notee 所执行的操作是取消执行结果写入文件中关于这两条指令的具体操作及效果如下图所示 6prompt\R 这条指令所执行的操作是修改提示符具体操作及效果如下图所示 7source\. 这条指令所执行的操作是加载并执行指定的 .sql 脚本具体操作及效果在下面再进行介绍。
8system\! 这条指令所执行的操作是执行系统命令属于一个比较危险的操作具体操作及效果如下图所示 9help contents 使用这个命令可以查看关于 MySQL 数据库使用的具体帮助包括用户管理、SQL 语法、数据类型、组件等相关内容列表具体操作及效果如下图所示 在 help 后面跟上具体要查看的条目可以获取该条目的详细帮助信息如help Functions操作及效果如下图所示 继续输入 help 具体的条目可以进一步观察关于此条目的详细说明例如help String Functions具体操作及效果如下图所示 还有很多其他的指令感兴趣的友友们可以自己尝试一下咯~~
4.从 .sql 文件中执行 SQL语句
1使用 source 命令导入 有时我们需要从 .sql 文件中执行一些 SQL 语句比如当我们要把一个数据库从一台服务器 A 复制到另一台服务器 B 上那么就可以先从服务器 A 中导出数据到 .sql 文件然后在服务器 B 执行这个 .sql 文件在上面我们介绍的命令中有 source\.命令那么下面我们就来具体操作及演示一下这个命令。 首先我们要先准备一个 .sql 文件命名为 test_db.sql内容如下
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS 0;DROP DATABASE IF EXISTS test_db;
CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;USE test_db;-- ----------------------------
-- Table structure for classes
-- ----------------------------
DROP TABLE IF EXISTS classes;
CREATE TABLE classes (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,desc varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB AUTO_INCREMENT 4 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of classes
-- ----------------------------
INSERT INTO classes VALUES (1, 计算机系2019级1班, 学习了计算机原理、C和Java语言、数据结构和算法);
INSERT INTO classes VALUES (2, 中文系2019级3班, 学习了中国传统文学);
INSERT INTO classes VALUES (3, 自动化2019级5班, 学习了机械自动化);-- ----------------------------
-- Table structure for course
-- ----------------------------
DROP TABLE IF EXISTS course;
CREATE TABLE course (id int(11) NOT NULL AUTO_INCREMENT,name varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,PRIMARY KEY (id) USING BTREE
) ENGINE InnoDB AUTO_INCREMENT 7 CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of course
-- ----------------------------
INSERT INTO course VALUES (1, Java);
INSERT INTO course VALUES (2, 中国传统文化);
INSERT INTO course VALUES (3, 计算机原理);
INSERT INTO course VALUES (4, 语文);
INSERT INTO course VALUES (5, 高阶数学);
INSERT INTO course VALUES (6, 英文);-- ----------------------------
-- Table structure for score
-- ----------------------------
DROP TABLE IF EXISTS score;
CREATE TABLE score (score decimal(3, 1) NULL DEFAULT NULL,student_id int(11) NULL DEFAULT NULL,course_id int(11) NULL DEFAULT NULL
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of score
-- ----------------------------
INSERT INTO score VALUES (70.5, 1, 1);
INSERT INTO score VALUES (98.5, 1, 3);
INSERT INTO score VALUES (33.0, 1, 5);
INSERT INTO score VALUES (98.0, 1, 6);
INSERT INTO score VALUES (60.0, 2, 1);
INSERT INTO score VALUES (59.5, 2, 5);
INSERT INTO score VALUES (33.0, 3, 1);
INSERT INTO score VALUES (68.0, 3, 3);
INSERT INTO score VALUES (99.0, 3, 5);
INSERT INTO score VALUES (67.0, 4, 1);
INSERT INTO score VALUES (23.0, 4, 3);
INSERT INTO score VALUES (56.0, 4, 5);
INSERT INTO score VALUES (72.0, 4, 6);
INSERT INTO score VALUES (81.0, 5, 1);
INSERT INTO score VALUES (37.0, 5, 5);-- ----------------------------
-- Table structure for student
-- ----------------------------
DROP TABLE IF EXISTS student;
CREATE TABLE student (id int(11) PRIMARY KEY AUTO_INCREMENT,sn int(11) NOT NULL COMMENT 学号,name varchar(20) NOT NULL COMMENT 姓名,mail varchar(20) COMMENT QQ邮箱
) ENGINE InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci ROW_FORMAT Dynamic;-- ----------------------------
-- Records of student
-- ----------------------------
INSERT INTO student VALUES (1, 50001, 张三, zsbit.com);
INSERT INTO student VALUES (2, 50002, 李四, lsbit.com);
INSERT INTO student VALUES (3, 50003, 王五, wwbit.com);
INSERT INTO student VALUES (4, 50004, 赵六, zlbit.com);
INSERT INTO student VALUES (5, 50005, 钱七, qqbit.com);SET FOREIGN_KEY_CHECKS 1;然后我们要确定 .sql 文件的绝对路径/root/test_db.sql如下图所示 下面我们要确定当前数据库中没有数据库 test_db查看我们当前数据库如下图所示 进行完上面的操作之后我们就可以使用 source 命令执行 .sql 文件中的 SQL 语句了具体操作及效果如下图所示 现在我们来验证一下执行的 SQL 语句是否成功如下图所示 2使用 mysql 客户端导入 除了上述的执行 .sql 文件的方式还有一种就是直接使用 mysql 客户端程序导入 .sql 文件并执行相应的 SQL 语句相关命令如下
# 在指定的数据库下执行 SQL前提是数据库必须提前建立好
mysql db_name text_file# 不指定数据库 .sql 中必须有 use [database_name]来指定要操作的数据库
mysql text_file 具体操作及效果如下图所示 我们可以根据我们的需求来选择执行 .sql 文件中 SQL 语句的方式。
·总结 文章到此就要结束了本篇文章重点介绍了 mysql 客户端程序中一些常用的命令及选项还介绍了一下 MySQL 的相关程序后面文章中会对其他程序再做详细介绍如果对文章内容有所疑惑欢迎在评论区进行留言如果感觉本篇文章还不错希望能收到你的三连支持那么我们下一篇文章再见吧~~~