第76讲:MySQL数据库中常用的命令行工具的基本使用
文章目录
- 1.mysql客户端命令工具
- 2.mysqladmin管理数据库的客户端工具
- 3.mysqlbinlog查看数据库中的二进制日志
- 4.mysqlshow统计数据库中的信息
- 5.mysqldump数据库备份工具
- 6.mysqllimport还原备份的数据
- 7.source命令还原SQL类型的备份文件
MySQL数据库提供了很多的命令行工具,在日常运维过程中可以使用这些工具来操作数据库。
1.mysql客户端命令工具
mysql命令时MySQL数据库的客户端工具,如果在非数据库的服务器上想要操作目标数据库,就需要去安装mysql客户端,通过mysql客户端可以对数据库进行增删改查操作,还可以进入mysql的交互式界面。
mysql工具的语法格式:mysql [options] [database]
mysql工具常用的选项:
-u,--user
:指定登陆数据库的用户名。-p,--password
:指定登录数据库的密码-h,--host
:指定要登陆的MySQL服务器地址。-P,--port
:指定MySQL数据库的端口号。-e,--excute
:通过此参数可以在非交互式下操作数据库,常用于脚本中。
#查看MySQL中有那些数据库
[root@mysql ~]# mysql -u root -p123456 -h 192.168.20.10 -P 3306 -e "show databases;"
mysql: [Warning] Using a password on the command line interface can be insecure.
+--------------------+
| Database |
+--------------------+
| db-3 |
| db_1 |
| db_2 |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+#该警告可以忽略,提示将密码显示在命令行不安全。
2.mysqladmin管理数据库的客户端工具
mysqladmin可是管理数据库操作的客户端程序,可以用它来检查服务器的配置和当前的运行状态,还可以来创建删除刷新数据库等等。
mysqladmin管理工具的参数很多,可以通过mysqladmin --help
来查看帮助信息,根据需要去查找对应的参数。
mysqladmin管理工具可以通过命令参数对数据库进行很多的操作,如下所示,有flush刷新数据库的功能、password修改用户的密码、processlist查看当前数据库的进程、shutdown关闭数据库、variables查看数据库的参数配置、version查看数据库的版本。
mysqladmin工具的语法格式:mysqladmin [options] command
选项参数:
-u,--user
:指定登陆数据库的用户名。-p,--password
:指定登录数据库的密码-h,--host
:指定要登陆的MySQL服务器地址。-P,--port
:指定MySQL数据库的端口号。
1)查看mysql数据库的版本
[root@mysql ~]# mysqladmin -uroot -p123456 version
mysqladmin Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.Server version 8.0.26
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /var/lib/mysql/mysql.sock
Uptime: 2 days 11 hours 41 min 32 secThreads: 2 Questions: 101 Slow queries: 0 Opens: 200 Flush tables: 3 Open tables: 119 Queries per second avg: 0.000
2)查看mysql数据库当前的运行的进程
[root@mysql ~]# mysqladmin -uroot -p123456 processlist
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+
| Id | User | Host | db | Command | Time | State | Info |
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+
| 5 | event_scheduler | localhost | | Daemon | 214901 | Waiting on empty queue | |
| 17 | root | localhost | | Query | 0 | init | show processlist |
+----+-----------------+-----------+----+---------+--------+------------------------+------------------+
3)创建一个数据库
[root@mysql ~]# mysqladmin -uroot -p123456 create db_test
4)删除一个数据库
[root@mysql ~]# mysqladmin -uroot -p123456 drop db_test
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.Do you really want to drop the 'db_test' database [y/N] y
Database "db_test" dropped
5)查看MySQL运行的状态
[root@mysql ~]# mysqladmin -uroot -p123456 status
Uptime: 214852 Threads: 2 Questions: 98 Slow queries: 0 Opens: 200 Flush tables: 3 Open tables: 119 Queries per second avg: 0.000
3.mysqlbinlog查看数据库中的二进制日志
通过mysqlbinlog命令可以查看数据库生成的二进制文件内容,通过二进制日志可以恢复没有备份且误删除的数据。
mysqlbinlog使用格式:mysqlbinlog [options] 二进制日志文件
可用的选项:
-d
:指定数据库名称,只列出与指定数据库相关的操作语句。-o
:忽略日志中前n行的指令。-r
:将输出的文本格式日志输出到指定的文件。-s
:显示简单的格式。--start-datetime=date1 --stop-datetime=date2
:显示指定日期间隔内的所有信息。--start-position=pos1 --stop-position=pos2
:显示指定位置间隔内的所有日志。
查看这个/var/lib/mysql/binlog.000003二进制日志中的数据。
[root@mysql ~]# mysqlbinlog -d db_1 /var/lib/mysql/binlog.000003
二进制日志中记录的都是实时对数据库操作的SQL语句。
4.mysqlshow统计数据库中的信息
通过mysqlshow命令可以统计MySQL数据库中有多少个数据库,每个数据库对应有多少张表,每张表下有多少条数据。
mysqlshow使用语法:mysqlshow [options] [db_name [table_name [col_name]]]
选项:
--count
:显示数据库及表的统计信息。-i
:显示指定数据库或者指定表的状态信息。
1)查看MySQL中有多少个数据库、每个数据库对应多少张表、每个数据库下共有多少条数据。
[root@mysql ~]# mysqlshow -uroot -p123456 --count
+--------------------+--------+--------------+
| Databases | Tables | Total Rows |
+--------------------+--------+--------------+
| db-3 | 2 | 0 |
| db_1 | 23 | 1027304 |
| db_2 | 0 | 0 |
| information_schema | 79 | 32856 |
| mysql | 37 | 3960 |
| performance_schema | 110 | 232877 |
| sys | 101 | 5078 |
+--------------------+--------+--------------+
7 rows in set.#Tables表示该数据库下有多少张表,Total Rows表示当前数据库中有多少条数据。
2)查看指定数据库下有那些表,分别有多少条数据。
[root@mysql ~]# mysqlshow -uroot -p123456 db_1 --count
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: db_1
+-------------------------+----------+------------+
| Tables | Columns | Total Rows |
+-------------------------+----------+------------+
| bmxxb | 2 | 7 |
| dabiao | 62 | 27126 |
| erp_user | 5 | 5 |
| jszx_xgymjzxxb | 13 | 15 |
| ryxxb | 8 | 22 |
| tb_memory | 2 | 0 |
| tb_user | 9 | 7 |
| tb_user_100w | 6 | 1000000 |
| tb_user_pro | 3 | 7 |
| v_jszx_xgymjzxxb_nozjhm | 12 | 15 |
| v_ryxx_bmxx | 3 | 22 |
| v_ryxxb_1 | 3 | 1 |
| v_ryxxb_2 | 3 | 1 |
| v_ryxxb_3 | 3 | 1 |
| v_ryxxb_4 | 3 | 1 |
| v_ryxxb_5 | 3 | 1 |
| v_ryxxb_6 | 3 | 1 |
| v_ryxxb_c | 1 | 1 |
| xscjb | 6 | 10 |
| xscjb_logs | 5 | 33 |
| xzdjb | 3 | 8 |
| yexxb | 3 | 2 |
| ygxxb | 8 | 18 |
+-------------------------+----------+------------+
23 rows in set.#Columns表示表中有多少个字段
3)查看指定表的统计信息。
[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb --count
4)查看指定字段的统计信息。
[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb ywcj --count
mysqlshow: [Warning] Using a password on the command line interface can be insecure.
Database: db_1 Table: xscjb Rows: 10 Wildcard: ywcj
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+
| ywcj | int | | YES | MUL | | | select,insert,update,references | 语文成绩 |
+-------+------+-----------+------+-----+---------+-------+---------------------------------+--------------+
5)查看指定数据库中表的状态。
[root@mysql ~]# mysqlshow -uroot -p123456 db_1 xscjb -i
5.mysqldump数据库备份工具
mysqldump工具是对数据库备份的工具,可以通过这个工具将数据进行备份,然后在不同数据库之间迁移。
mysqldump的使用语法:
-
备份指定数据库
mysqldump 选项 数据库
-
备份指定数据库下的某张表
mysqldump 选项 数据库 表
-
备份多个数据库
mysqldump 选项 --database/-B 数据库1 数据库2
-
备份所有数据库
mysqldump 选项 --all-databases/-A
mysqldump连接数据库的选项:
-u,--user
:指定登陆数据库的用户名。-p,--password
:指定登录数据库的密码-h,--host
:指定要登陆的MySQL服务器地址。-P,--port
:指定MySQL数据库的端口号。
mysqldump输出选项:
-
--add-drop-database
:在每个数据库创建语句前加上 drop database 语句。 -
--add-drop-table
:在每个表创建语句前加上 drop table 语句 , 默认开启 ; 不开启 (–skip-add-drop-table) 。 -
-n, --no-create-db
:不包含数据库的创建语句。 -
-t, --no-create-info
:不包含数据表的创建语句。 -
-d --no-data
:不包含数据。 -
-T, --tab=name
:自动生成两个文件:一个.sql文件,创建表结构的语句;一 个.txt文件,数据文件 。
1)备份db_1数据库
[root@mysql backup]# mysqldump -uroot -p123456 db_1 > db_1.sql
在db_1.sql文件中备份了db_1数据库的所有表以及数据、
2)备份db_1数据库下的xscjb表,只备份表结构不备份数据
[root@mysql backup]# mysqldump -uroot -p123456 db_1 xscjb -d > db_1-xscjb.sql
此时备份文件里只有建表语句,不包含数据。
3)备份db_1数据库下的xscjb表,只备份数据表不备份表结构和数据库
[root@mysql backup]# mysqldump -uroot -p123456 db_1 xscjb -n -t > db_1-xscjb-data.sql
4)备份db_1数据库下的xscjb表,生成两个文件
当我们希望备份数据库时,表结构和表数据分开存放,.sql文件存放表结构的备份,.txt文件存放表数据的备份,那么就需要使用-T参数了。
使用-T参数之前需要先查看MySQL受信任的备份路径,否则只能备份表的结构,表数据无法备份成功。
1.查看mysql受信的备份路径
mysql> show variables like '%secure_file_priv%';
+------------------+-----------------------+
| Variable_name | Value |
+------------------+-----------------------+
| secure_file_priv | /var/lib/mysql-files/ |
+------------------+-----------------------+2.备份时指定该路径作为备份路径即可
[root@mysql ~]# mysqldump -uroot -p123456 db_1 xscjb -T /var/lib/mysql-files/3.查看生成的备份文件
[root@mysql ~]# ll /var/lib/mysql-files/
总用量 12
-rw-r--r-- 1 root root 5469 6月 29 23:09 xscjb.sql
-rw-r----- 1 mysql mysql 219 6月 29 23:09 xscjb.txt
.sql文件备份表结构,.txt文件备份表数据,使用-T参数导出的txt表数据,不是SQL语句,而是特定格式的数据。
6.mysqllimport还原备份的数据
mysqllimport工具可以还原mysqldump -T参数备份的txt格式的表数据文件,如果备份的数据是sql格式的,mysqllimport无法还原,mysqllimport只能还原txt格式的备份文件。
使用语法:mysqlimport [options] 数据库 txtfile
将xscjb的数据清空,然后使用mysqllimport还原刚刚备份的xscjb的数据。
1.清空xscjb表的数据
[root@mysql ~]# mysql -uroot -p123456 -e "delete from db_1.xscjb;"2.还原备份的数据
[root@mysql ~]# mysqlimport -uroot -p123456 db_1 /var/lib/mysql-files/xscjb.txt
db_1.xscjb: Records: 10 Deleted: 0 Skipped: 0 Warnings: 0#数据还原成功,还原的条数为10条
7.source命令还原SQL类型的备份文件
使用mysqllimport工具只能还原txt类型的备份文件,一般情况下备份的数据库文件都是.sql格式的,可以通过source命令进行还原,source命令时在交互式中执行的。
[root@mysql ~]# mysql -uroot -p123456
mysql> use db_1;
mysql> source /root/backup/db_1.sql;
相关文章:

第76讲:MySQL数据库中常用的命令行工具的基本使用
文章目录 1.mysql客户端命令工具2.mysqladmin管理数据库的客户端工具3.mysqlbinlog查看数据库中的二进制日志4.mysqlshow统计数据库中的信息5.mysqldump数据库备份工具6.mysqllimport还原备份的数据7.source命令还原SQL类型的备份文件 MySQL数据库提供了很多的命令行工具&#…...

初级数据结构(二)——链表
文中代码源文件已上传:数据结构源码 <-上一篇 初级数据结构(一)——顺序表 | NULL 下一篇-> 1、链表特征 与顺序表数据连续存放不同,链表中每个数据是分开存放的,而且存放的位置尤其零散&#…...

Kubernetes架构及核心部件
文章目录 1、Kubernetes集群概述1.1、概述1.2、通过声明式API即可 2、Kubernetes 集群架构2.1、Master 组件2.1.1、API Server2.1.2、集群状态存储2.1.3、控制器管理器2.1.4、调度器 2.2、Worker Node 组件2.2.1、kubelet2.2.2、容器运行时环境2.2.3、kube-proxy 2.3、图解架构…...
RAW和YUV的区别
RAW是指未经过任何压缩或处理的原始图像数据。在摄像头中,原始图像数据可以是来自图像传感器的未经处理的像素值。这些原始数据通常以一种Bayer模式的形式存在,其中每个像素仅包含一种颜色信息(红色、绿色或蓝色),需要…...
Linux常见问题-获取日志方法总结(Ubuntu/Debian)
1 日志基本路径和基础查看方法 在 Ubuntu 或 Debian 11 系统中,可以通过不同的日志文件来获取系统日志和内核日志。日志常见路径如下: /var/log/syslog:包含系统的整体日志,包括各种系统事件和服务日志。/var/log/auth.log&…...

【机器视觉技术栈】03 - 镜头
镜头 定焦镜头变焦镜头远心镜头 FA镜头与远心镜头的区别? 焦距越小畸变程度越大,精度要求不高的场景可以使用焦距大的FA镜头做尺寸测量,但焦距越大带来的问题就是整个机械设备越大。精度高的场景使用远心镜头进行尺寸测量。 光学基础知识…...

判断一个Series序列的值是否为单调递减Series.is_monotonic_decreasing
【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 判断一个Series序列中 各值是否单调递减 s.is_monotonic_decreasing [太阳]选择题 以下代码的输出结果中正确的是? import pandas as pd s1 pd.Series([3,2,1]) s2 pd.Series([3,2,4]) pri…...

CSPNet: A New Backbone that can Enhance Learning Capability of CNN(2019)
文章目录 -Abstract1 Introduction2 Related workformer work 3 Method3.1 Cross Stage Partial Network3.2 Exact Fusion Model 4 Experiments5 Conclusion 原文链接 源代码 - 梯度信息重用(有别于冗余的梯度信息)可以减少计算量和内存占用提高效率&am…...

本科毕业论文查重的依据
大家好,今天来聊聊本科毕业论文查重的依据,希望能给大家提供一点参考。 以下是针对论文重复率高的情况,提供一些修改建议和技巧: 本科毕业论文查重依据:维护学术诚信的基石 摘要: 本科毕业论文是衡量学生学…...

如何利用Axure制作移动端产品原型
Axure是一款专业的快速原型设计工具,作为专业的原型设计工具,Axure 能够快速、高效地创建原型,同时支持多人协作设计和版本控制管理。它已经得到了许多大公司的采用,如IBM、微软、思科、eBay等,这些公司都利用Axure 进…...
Java中时间之间的转换
Java中常见的时间类有:Date、Calendar、SimpleDateFormat等。下面对不同时间类之间的转换进行介绍。 1、Date和Calendar之间的转换 Date和Calendar都可以表示时间,但是它们的使用方式不同。Date是一个表示特定时间点的类,而Calendar则是一个…...

【win32_005】调试信息打印到控制台----2种简单方法
方法1:使用win32 api函数 PCTSTR str1 TEXT("123456789");AllocConsole();HANDLE HConsole GetStdHandle(STD_OUTPUT_HANDLE);WriteConsole(HConsole, str1, 9, NULL, NULL);https://learn.microsoft.com/zh-cn/windows/console/writeconsole 方…...

PPT添加备注
0 Preface/Foreward 1 添加备注方法 添加备注方法:在page的最下端,有一个空白文本框,该文本框用来添加备注。...

Ubuntu20.04使用cephadm部署ceph集群
文章目录 Requirements环境安装Cephadm部署Ceph单机集群引导(bootstrap)建立新集群 管理OSD列出可用的OSD设备部署OSD删除OSD 管理主机列出主机信息添加主机到集群从集群中删除主机 部署Ceph集群 Cephadm通过在单个主机上创建一个Ceph单机集群࿰…...

激光打标机在智能手表上的应用:科技与时尚的完美结合
随着科技的飞速发展,智能手表已经成为我们日常生活中不可或缺的智能设备。而在智能手表制造中,激光打标机扮演着至关重要的角色。本文将详细介绍激光打标机在智能手表制造中的应用,以及其带来的优势和影响。 一、激光打标机在智能手表制…...

ROS-ROS通信机制-参数服务器
文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器,可以将数据存储在该容器中,被不同的节点调用,当然不同的节点…...
在github中通过action自动化部署 hugo academic theme,实现上传md文件更新博客内容
在github中通过action自动化部署 hugo academic theme 一、GitHub Action自动化部署Hugo博客方法 主要参考:【Hugo网站搭建】GitHub Action自动化部署Hugo博客 次要参考:使用 Github Action 自动部署 Hugo 博客 二、部署过程中遇到的问题和解决办法 …...
深入理解asyncio:异步编程的基础用法
引言: 随着计算机硬件的不断发展,对于异步编程的需求也越来越强烈。Python中的asyncio模块为开发者提供了一种强大而灵活的异步编程方式。本文将介绍asyncio的基础用法,包括async/await/run语句的使用、多个协程的并发执行、以及在协程中进行…...
Android 消息分发机制解读
前言 想必大家都知道Android系统有自己的一套消息分发机制,,从App启动那一刻起,App就创建了主线程的消息分发实例:Looper.sMainLooper,并开始无限循环,也就是App的心脏,一直跳动,负责协调分配来…...
【ML】LSTM应用——预测股票(基于 tensorflow2)
LSTM 应用预测股票数据 所用数据集:https://www.kaggle.com/datasets/yuanheqiuye/bank-stock 基于:tensorFlow 2.x 数据处理 import numpy as np import pandas as pd from matplotlib import pyplot as plt from sklearn.model_selection import tr…...

【Axure高保真原型】引导弹窗
今天和大家中分享引导弹窗的原型模板,载入页面后,会显示引导弹窗,适用于引导用户使用页面,点击完成后,会显示下一个引导弹窗,直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...

Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
前端倒计时误差!
提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
Linux简单的操作
ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
使用van-uploader 的UI组件,结合vue2如何实现图片上传组件的封装
以下是基于 vant-ui(适配 Vue2 版本 )实现截图中照片上传预览、删除功能,并封装成可复用组件的完整代码,包含样式和逻辑实现,可直接在 Vue2 项目中使用: 1. 封装的图片上传组件 ImageUploader.vue <te…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...