【MySQL数据库】Ubuntu下的mysql
目录
1,安装mysql数据库
2,mysql默认安装路径
3,my.cnf配置文件?
4,mysql运用的相关指令及说明
5,数据库、表的备份和恢复
mysql是一套给我们提供数据存取的,更加有利于管理数据的服务的网络程序。下面,以Ubuntu系统为例来介绍mysql数据库。
1,安装mysql数据库
sudo apt install mysql-server
安装完数据库后,首先,这里会存在客户端mysql和服务端mysqld两个工具软件,我们使用指令 which mysql、which mysqld 可查看到其路径,一般我们都是使用客户端mysql进行数据库操作的,服务端mysqld负责处理来自客户端的请求;其次,数据库安装后默认是没有启动的,使用 systemctl start mysql可开启mysql服务。
2,mysql默认安装路径
在Ubuntu系统下,使用apt install mysql安装的MySQL数据库的默认路径如下:
- 可执行文件:MySQL服务器的可执行文件位于
/usr/sbin/mysqld(直接使用which即可查找到),MySQL客户端位于/usr/bin/mysql。mysqld是MySQL服务器的主要执行文件,通过它可以启动、停止和管理MySQL数据库。 - 配置文件:
my.cnf是MYSQL的配置文件,该配置文件包含了MySQL服务器的各种设置选项,如端口号、日志路径、缓冲区大小等。可以通过编辑该配置文件来修改MySQL服务器的配置。MySQL服务器的配置文件通常位于/etc/mysql/mysql.conf.d/mysqld.cnf或/etc/mysql/my.cnf。 - 数据目录:MySQL服务器的数据目录位于
/var/lib/mysql。在该目录下,MySQL会存储所有的数据库文件和表数据。在默认的安装配置下,每个数据库都会在该目录下创建一个独立的子目录。 - 日志文件:MySQL的日志文件通常位于
/var/log/mysql。这些日志文件记录了MySQL服务器的运行状况、错误信息和其他相关日志。
3,my.cnf配置文件
my.cnf是数据库MySQL的核心配置文件。它用于控制MySQL的运行行为和进行性能优化。以下是一些关键的段和配置项:
-
[client]:这个部分配置影响所有MySQL客户端程序的行为,如连接端口、字符集以及用于本地连接的socket套接字等。例如:
port = 3306。指定MySQL客户端连接端口3306(默认连接端口就是3306)。socket = /var/lib/mysql/mysql.sock。用于本地连接的socket套接字路径。default-character-set = utf8mb4。设置客户端默认字符集,一般情况下默认即可。
-
[mysqld]:这是MySQL服务器的主要配置段,大部分与服务相关的设置都在这里,包括数据存储路径、缓冲池大小、线程数、日志设置等。例如:
port = 3306。指定MySQL服务器监听端口。它一般会修改为指定的端口。socket = /var/lib/mysql/mysql.sock。MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件mysql.sock。一般直接设置为mysql.sock文件路径即可,通常不用管理。datadir = /var/lib/mysql。指定数据文件存放的目录。(若不配置,数据默认在**/var/lib/mysql**路径下。这个子目录用于存储MySQL数据库的数据文件,修改到其它路径下可能会报错,这里直接在此路径下即可)character_set_server = utf8mb4``。设置服务端为utf8mb4的编码格式。默认编格式是utf8mb4,一般情况下使用默认即可。default-storage-engine = lnnoDB。设置存储引擎。默认的存储引擎是InnoDB。user = mysql。指定MySQL启动用户。
请注意,修改my.cnf文件后,通常需要重启MySQL服务以使新设置生效。在进行重大配置更改前,建议备份原有的my.cnf文件,并逐步测试更改的影响。
4,mysql运用的相关指令及说明
1,启动mysql服务、停止mysql服务、重新启动mysql运行的指令如下:
启动mysql:systemctl start mysql
停止mysql:systemctl stop mysql
重新启动mysql:systemctl restart mysql
2,启动mysql数据库。在Ubuntu系统下,使用mysql命令行工具时,有多个常用选项可以帮助你启动MySQL数据库。以下是一些常用的mysql命令行选项:
-
-u,全名–user
指定连接MySQL服务器时使用的用户名。例如:mysql -u root?以root身份启动mysql。 -
-p,全名–password
提示输入密码,或者如果后面紧跟密码,则使用该密码(不推荐在命令行中直接输入密码,因为这样做不安全)。例如:mysql -u root -p -
-h,全名–host
指定要连接的MySQL服务器的主机名或IP地址。如果连接到本地服务器,可以省略此选项。例如:mysql -h localhost -u root -
-P,全名–port
指定要连接的MySQL服务器的端口号。默认端口是3306。例如:mysql -P 3306?-u root
3,当你成功进入MYSQL后,MySQL客户端会尝试与MySQL服务器建立连接。如果连接成功,你就会看到一个MySQL提示符(通常是mysql>),表示你现在已经登录到MySQL服务器,可以开始执行SQL语句了。
SQL语句这里要说明下,这里输入的命令都是以分号(;)或g结尾,表示指令结束,开始进行服务处理。输入“ help ” 或 “ h ” 获取MYSQL基础命令帮助,例如:clear清除当前输入的指令,quit退出mysql等。输入 “ c ” 清除当前输入语句。
下面来说明下使用mysql的基础常用命令。
1,列出当前MySQL服务器实例上所有的数据库:show databases;
其中,这个列表通常包括MySQL系统自带的数据库(如
mysql、information_schema、performance_schema等)以及用户创建的任何数据库。2,创建数据目录,即创建数据库:create database [可选选项1][库名称] [character set 字符集名] [collate 校验规则]; 例如:create database data; 创建data数据库。
[可选选项1]:if not exists。表示若不存在即创建;若存在什么也不做。例如:create databaseif not exists data;
[可选参数2]:
[character set 字符集名]:指定创建数据库时使用的字符集。字符集是编码集是一种 规则集,编码集定义了字符与二进制数据之间的对应关系。这种对应关系确保了不同系 统之间的文本数据能够正确地交互和解析,它直接影响到数据库中存储的文本数据的正 确性和可读性。字符集定义了存储数据字符的编码格式,一般系统默认情况下使用 utf8mb3字符集。
[collate 校验规则]:校验规则也是编码集的一种常用方式,它是在字符集内用于 比较字符的一套规则,定义了字符之间的排序和比较方式,本质上是读取数据时采用的 编码格式。默认情况下系统一般使用校验规则utf8_general_ci。
注意:构建数据库,本质上就是在
/var/lib/mysql目录下构建一个数据目录(在该目录下可以看到)。用户通过在客户端mysql下达指令,服务端mysqld接收指令后会在存储数据目录下建立一个数据库,即数据目录。3,查看数据库使用的字符集:show variables like ‘character_set_database’;
展示数据库支持的字符集:show charset;
4,查看数据库使用的校验规则:show variables like ‘collation_database’;
展示数据库支持的校验规则:show collation;
5,删除数据库:drop database [删除数据库的名称]; 例如:drop database data;
6,修改数据库的字符集或校验规则:alter data [数据库名称][character set 字符集名] [collate 校验规则];
注意:数据库的修改一般都是修改数据库使用的字符集和校验规则。
7,进入到创建的data数据库中:use data;
我们可以使用指令:select database(); 查看当前在哪个数据库下
8,在data数据库下创建一个表:create table [可选参数1][表名称](
[定义表中的列][指定列的数据类型,如int、varchar等] [可选参数,暂时先不用管],
…
[可选参数,暂时先不用管])[character set 字符集名] [collate 校验规则] [engine 存储引擎];
[可选选项1]:if not exists。与建库一样,表示若不存在即创建;若存在什么也不做。
[character set 字符集名]:与建库一样,指定建表时使用的字符集。
[collate 校验规则]:与建库一样,指定建表时使用的校验规则。
[engine 存储引擎]:指定建表时的存储引擎。后面会说明,暂时可不用管。
这里说明一下varchar类型。varchar 是一种在数据库中用于存储可变长度字符串的数据类型。与固定长度的 char类型不同,varchar类型会根据实际存储的字符串长度来动态分配存储空间。具体来说,varchar类型会指定一个最大长度(在创建表时定义),但实际存储时只会占用必要的空间。这意味着,如果你有一个 varchar(255)类型的列,并且存储了一个长度为 10 的字符串,那么它只会占用 10 个字符加上长度信息的空间,而不是固定的 255 个字符的空间。
9,向表中插入数据,以上图为例:选择性插入 insert into student (name, age, gender) values (‘张三’, 20, ‘男’); 或依次插入insert into student values (‘孩子’, ‘30’, ‘女’);
10,查询表中数据,以上图为例:select * from student;(查询表student所有列的数据)
select age from student;(查询表student中age列中的所有数据)
11,查看表结构的详细信息:desc [表名称];
注意:表结构的详细信息后面会介绍。
12,修改表名:alter table [原表名] rename to [更改后表名]
注意:上面中rename to 中的 to 可省略。
13,修改表中的列名称:alter table [表名] change [列名称] [更改后的列名称] [设置列新的属性];
14,新增加表的列:alter table [表名] add [列名称] [列的数据类型] [可选结构…] … [after 列名称]
[after 列名称]:表示新增加到具体哪个列名称的后面。
注意:新增表的列结构的参数 [列名称] [列的数据类型] [可选结构…] … 与插入一样。
15,修改表中某一列下的一个属性:alter table [表名] modify [列名称] [修改后的属性]
16,删除表中的某一列:alter table [表名] drop [列名称];
17,展示在当前数据库下的表:show tables;
18,删除表:drop table [表名称];
19,清屏:system clear;
最后这里说明一下,SQL指令不区分大小写,指令大写和小写都可以。
5,数据库、表的备份和恢复
1,数据库和表的备份
指令:
备份单个或多个数据库:mysqldump-u [用户名] -p [密码] -B [数据库名1][数据库名2] … > [数据库备份存储的文件路径]
示例1:mysqldump -P 3306 -u root -p -B data > ./data.sql
示例2:mysqldump -P 3306 -u root -p -B data data2 data3 > ./data.sql
备份一个或多个表:mysqldump -u [用户名] -p [密码] [数据库名] [表1] [表2] … > [表备份存储的文件路径]
示例:mysqldump -P 3306 -u root -p data student > ./student.sql
注意:
首先,备份文件后缀是 .sql ,上面示例中data.sql文件里的内容,其实就是把整个数据库data的信息都装载了这个文件中;其次,数据库备份的操作都是在shell/bash指令行中运行的,端口号若不说明一般默认配置文件中的端口号——3306。
2,数据库和表的还原
指令:
source [备份数据库/表文件的路径]
示例:source /var/lib/mysql/data2/data.sql;
注意:
还原操作是在mysql客户端的命令行上运行的。
在数据库下建表,本质就是在该目录下建立文件。所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个用户建立的数据库,一般开发人员会针对每一个应用创建一个数据库,而为保存应用中实体的数据,一般会在数据库中创建多个表结构,以保存程序中实体的数据。
相关文章:
【MySQL数据库】Ubuntu下的mysql
目录 1,安装mysql数据库 2,mysql默认安装路径 3,my.cnf配置文件? 4,mysql运用的相关指令及说明 5,数据库、表的备份和恢复 mysql是一套给我们提供数据存取的,更加有利于管理数据的服务的网络程序。下…...
GPQA (Graduate-Level Google-Proof QA Benchmark) 数据集
标题:挑战人类与AI的极限:GPQA——一个面向未来的高难度科学问答基准 引言 在人工智能快速发展的今天,大型语言模型(如GPT-4)已能在许多任务中媲美甚至超越人类表现。然而,当面对需要高度专业知识的问题时&…...
WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程
在当今数字化时代,音视频通讯技术正以前所未有的速度革新着我们的生活与工作方式。WebRTC与EasyRTC作为这一领域的佼佼者,正携手为智能硬件的音视频通讯注入强大动力,开启全新的篇章。 一、WebRTC与智能硬件融合的崭新趋势 WebRTC技术&…...
利用ffplay播放udp组播视频流
ffplay -fs -fflags nobuffer -flags low_delay -analyzeduration 0 -probesize 32 -framedrop -sync ext -strict experimental udp://224.1.1.1:5001 -fs : 全屏显示 -fflags nobuffer : 禁用输入缓冲(减少100-200ms缓冲延迟) -an…...
基于Ceedling的嵌入式软件单元测试
Ceedling 如果你使用 Ceedling(一个针对 C 代码单元测试的构建管理器),可以更方便地管理测试。Ceedling 会自动处理 Unity 和 CMock 的集成,无需手动编写 Makefile。 1.环境搭建 1.1 Ruby环境 sudo apt-get install ruby1.2 安…...
一文深入了解DeepSeek-R1:模型架构
本文深入探讨了 DeepSeek-R1 模型架构。让我们从输入到输出追踪 DeepSeek-R1 模型,以找到架构中的新发展和关键部分。DeepSeek-R1 基于 DeepSeek-V3-Base 模型架构。本文旨在涵盖其设计的所有重要方面。 📝 1. 输入上下文长度 DeepSeek-R1的输入上下文长…...
机试题——快乐时间
题目描述 小明在工作之余喜欢在电子书城阅读不同的书籍并且获得最大的满足感,因此根据书城针对每本书籍的评分收集了 n 个书籍的打分清单 books,例如第一本书的打分 books[0]5 代表该书的满意程度为 5,第二本书 books[1]-2 代表该书的满意程…...
2024年终总结和2025年规划
2024年的主线是AI基础的学习和读书,虽然AI学习花费了更多的时间,但是读书长久看来于我是更重要的事情,哈哈哈,因此先简单回顾一下读书记忆,回顾我的2024,再展望一下我的2025. 我的2024年记忆 读万卷书&am…...
5 .TCP传输 文件/数据
文件传输 本质:客户端通过标准IO或者文件IO,读取文件中的信息 然后将读取到的信息,通过套接字发送给服务器 服务器接收到后,立刻通过标准IO或者文件IO写到文件 这个过程,服务器要知道2件事 1:客户端发来的文件名字 …...
哈希表(典型算法思想)—— OJ例题算法解析思路
目录 一、1. 两数之和 - 力扣(LeetCode) 算法代码: 1. 问题描述 2. 核心思路 3. 代码实现思路 (1)初始化哈希表 (2)遍历数组 (3)返回结果 4. 时间复杂度分析 …...
CloudberryDB(七)二级索引
在CloudberryDB中,二级索引的概念与PostgreSQL中的类似。但是,由于分布式特性,创建和使用二级索引需要考虑一些额外的因素。以下是关于二级索引的一些要点: 1. **创建索引**:在Greenplum中,可以使用CREATE…...
学习web数据埋点
什么是埋点,以及为什么需要埋点 通过代码主动收集用户行为数据(如点击、浏览、停留时长等),用于数据分析驱动产品优化。 一、前端埋点 在客户端(浏览器、移动端应用)直接采集用户行为数据,通…...
Next.js【详解】CSS 样式方案
全局样式 Global CSS 默认已创建,即 src\app\globals.css,可根据需要修改 默认在全局布局中导入 src\app\layout.tsx import "./globals.css";组件样式 CSS Modules 新建文件 src\app\test\styles.module.css .red {color: red;}导入目标页面…...
HCIA项目实践--RIP相关原理知识面试问题总结回答
9.4 RIP 9.4.1 补充概念 什么是邻居? 邻居指的是在网络拓扑结构中与某一节点(如路由器)直接相连的其他节点。它们之间可以直接进行通信和数据交互,能互相交换路由信息等,以实现网络中的数据转发和路径选择等功能。&am…...
无人机信号调制技术原理
一、调制技术的必要性 频谱搬移:将低频的基带信号搬移到高频的载波上,便于天线辐射和传播。 信道复用: 利用不同的载波频率或调制方式,实现多路信号同时传输,提高信道利用率。 抗干扰: 通过选择合适的调…...
Qt——连接MySQL数据库之编译数据库驱动的方法详细总结(各版本大同小异,看这一篇就够了)
【系列专栏】:博主结合工作实践输出的,解决实际问题的专栏,朋友们看过来! 《项目案例分享》 《极客DIY开源分享》 《嵌入式通用开发实战》 《C++语言开发基础总结》 《从0到1学习嵌入式Linux开发》 《QT开发实战》 《Android开发实战》 《实用硬件方案设计》 《结构建模设…...
leetcode-495.提莫攻击
leetcode-495.提莫攻击 文章目录 leetcode-495.提莫攻击一.题目描述二.代码提交三.解释 一.题目描述 二.代码提交 #include <vector> using namespace std;int findPoisonedDuration(vector<int>& timeSeries, int duration) {int total 0;for (int i 0; i …...
计算机网络知识速记 :HTTP多个TCP连接的实现方式
计算机网络知识速记 :HTTP多个TCP连接的实现方式 在当今互联网高速发展的背景下, web 应用程序对性能的要求日益增加。在众多网络协议中,HTTP (超文本传输协议) 的性能优化显得尤为重要,尤其是在多个TCP连接的管理和实现上。 引…...
5、《Spring Boot自动配置黑魔法:原理深度剖析》
Spring Boot自动配置黑魔法:原理深度剖析 一、引言:为什么Spring Boot能“开箱即用”? Spring Boot的核心理念是**“约定优于配置”,开发者只需引入一个spring-boot-starter-web依赖,就能直接编写RESTful API…...
Django 创建表时 “__str__ ”方法的使用
在 Django 模型中,__str__ 方法是一个 Python 特殊方法(也称为“魔术方法”),用于定义对象的字符串表示形式。它的作用是控制当对象被转换为字符串时,应该返回什么样的内容。 示例: 我在初学ModelForm时尝…...
CUDA-内存访问模式
在 GPU 计算中,内存访问模式 直接影响程序的性能,尤其是 全局内存(global memory) 访问的合并性(coalescing)和局部性(locality)。 1. GPU 内存层次结构 GPU 具有多级存储ÿ…...
img标签的title和alt
img标签的title和alt 显示上 title:鼠标移入到图片上时候显示的内容; alt:图片无法加载时候显示的内容; <div class"box"><div><!-- title --><h3>title</h3><img src"./image/poster.jpg" title"这是封…...
【一文读懂】HTTP与Websocket协议
HTTP协议 概述 HTTP (Hypertext Transfer Protocol),即超文本传输协议,是一种用于在客户端和服务器之间传输超文本(例如网页、图片、音频、视频等)的通信协议。它是万维网(WWW)的基础,负责在浏…...
Grafana——如何迁移Grafana到一台新服务器
背景 有时候由于服务器更新之类的,我们需要迁移一整套Grafana,这时候该怎么操作呢? 下面让我一步步说明下 安装Grafana 在新的服务器上安装Grafana 这个不再赘述,可以看一下我之前的文章 备份及迁移 迁移配置文件 配置文件即…...
android 源码切换分支
在Android源码(通常是指Android操作系统的源代码,比如AOSP - Android Open Source Project)中进行分支切换,你需要使用Git这一版本控制系统。以下是切换分支的基本步骤: 确保你在工作目录中: 首先&…...
Flutter中 List列表中移除特定元素
在 Dart 语言里,若要从子列表中移除特定元素,可以使用以下几种方法,下面为你详细介绍: 方法一:使用 where 方法创建新列表 where 方法会根据指定的条件筛选元素,然后通过 toList 方法将筛选结果转换为新列…...
一己之见:嵌入式linux开发板的选择(canmv还是...)
个人了解范围有限,仅仅介绍我略微了解的几个开发板。 野火,核桃,canmv,香蕉,香橙,庐山,地瓜,还有其他...。 野火资料全,型号多,接口丰富,支持usb…...
逻辑函数化简全解析:公式法与卡诺图法终极指南
一、为什么需要逻辑函数化简? 想象一下,你正在设计一个简单的3人投票电路:当至少两人同意时,输出通过信号。未经化简的逻辑表达式可能是: F A&B A&C B&C 若直接实现,需要3个与门和1个或门。…...
多模态基础模型训练笔记-第一篇InternVL-g
一、TL;DR 将之前所有训练过的大模型的过程都总结和回忆一下,遇到的坑别忘了 二、问题记录 还是注意镜像的选择,选择社区最火的镜像,然后下载好对应的数据,主要显卡的选择,这个时候4090已经带不动了&…...
微软AutoGen高级功能——Magentic-One
介绍 大家好,博主又来给大家分享知识了,这次给大家分享的内容是微软AutoGen框架的高级功能Magentic-One。那么它是用来做什么的或它又是什么功能呢,我们直接进入正题。 Magentic-One Magnetic-One是一个通用型多智能体系统,用于…...












