【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是一套给我们提供数据存取的,更加有利于管理数据的服务的网络程序。下…...
[MySQL#1] database概述 常见的操作指令 MySQL架构 存储引擎
#1024程序员节|征文# 目录 一. 数据库概念 0.连接服务器 1. 什么是数据库 口语中的数据库 为什么数据不直接以文件形式存储,而需要使用数据库呢? 总结 二. ??基础操作 三. 主流数据库 四. 基础知识 服务器,数据库&…...
1.从零开始学会Vue--{{基础指令}}
全新专栏带你快速掌握Vue2Vue3 1.插值表达式{{}} 插值表达式是一种Vue的模板语法 我们可以用插值表达式渲染出Vue提供的数据 1.作用:利用表达式进行插值,渲染到页面中 表达式:是可以被求值的代码,JS引擎会将其计算出一个结果 …...
VS2022中.Net Api + Vue 从创建到发布到IIS
VS2022中.Net Api Vue 从创建到发布到IIS 前言一、先决条件二、创建项目三、运行项目四、增加API五、发布到IIS六、设置Vue的发布 前言 最近从VS2019 升级到了VS2022,终于可以使用官方的.Net Vue 组合了,但是使用过程中还是有很多问题,这里记录一下. 一、先决条件 Visual …...
RFID技术在制造环节的应用与价值
在现代制造业中,信息化和智能化已经成为企业提升竞争力的重要手段。RFID技术因其非接触式、远距离和高效识别的特点,广泛应用于生产的多个环节。本文将详细解读生产过程中RFID的关键应用场景,并结合实际案例,展示其为制造业带来的…...
(前端基础)HTML(一)
前提 W3C:World Wide Web Consortium(万维网联盟) Web技术领域最权威和具有影响力的国际中立性技术标准机构 其中标准包括:机构化标准语言(HTML、XML) 表现标准语言(CSS) 行为标准…...
Linux文件管理:硬链接与软链接
文章目录 1. 硬链接的设计目的(1)节省存储空间(2)提高文件管理效率(3)数据持久性(4)文件系统的自然特性 2. 软链接的设计目的**(1)跨文件系统引用****&#x…...
pnpm, eslint, vue-router4, element-plus, pinia
利用 pnpm 创建 vue3 项目 pnpm 包管理器 - 创建项目 Eslint 配置代码风格(Eslint用于规范纠错,prettier用于美观) 在 设置 中配置保存时自动修复 提交前做代码检查 husky是一个 git hooks工具(git的钩子工具,可以在特定实际执行特…...
在软件产品从开发到上线过程中,不同阶段可能出现哪些问题,导致软件最终出现线上bug
在软件产品从开发到上线的全生命周期中,不同阶段都可能因流程漏洞、技术疏忽或人为因素导致线上问题。以下是各阶段常见问题及典型案例: 1. 需求分析与设计阶段 问题根源:业务逻辑不清晰或设计缺陷 典型问题: 需求文档模糊&#…...
Spring Boot中如何自定义Starter
文章目录 Spring Boot中如何自定义Starter概念和作用1. 概念介绍2. 作用和优势2.1 简化依赖管理2.2 提供开箱即用的自动配置2.3 标准化和模块化开发2.4 提高开发效率2.5 提供灵活的配置覆盖3. 应用场景创建核心依赖1. 确定核心依赖的作用2. 创建 starter-core 模块2.1 依赖管理…...
制作Ubuntu根文件
系列文章目录 Linux内核学习 Linux 知识(1) Linux 知识(2) WSL Ubuntu QEMU 虚拟机 Linux 调试视频 PCIe 与 USB 的补充知识 vscode 使用说明 树莓派 4B 指南 设备驱动畅想 Linux内核子系统 Linux 文件系统挂载 QEMU 通过网络实现…...
SpringBoot快速接入OpenAI大模型(JDK8)
使用AI4J快速接入OpenAI大模型 本博文给大家介绍一下如何使用AI4J快速接入OpenAI大模型,并且如何实现流式与非流式的输出,以及对函数调用的使用。 介绍 由于SpringAI需要使用JDK17和Spring Boot3,但是目前很多应用依旧使用的JDK8版本&…...
UniApp 中制作一个横向滚动工具栏
前言 最近在用 UniApp 开发项目时,需要一个横向滑动的工具栏。常见的工具栏一般都是竖着的,但横向滑动的工具栏不仅能展示更多内容,还能让界面看起来更加丰富。不过很多朋友可能会发现,如何让内容“横着”展示又不变形、能流畅滚…...
react中如何获取真实的dom
在 React 中,获取真实的 DOM 元素通常通过 ref 来实现。ref 是一个特殊的属性,用于引用组件或 DOM 元素的实例。你可以通过 ref 获取到组件的真实 DOM 元素或组件实例。 1. 函数组件中的 useRef 在函数组件中,获取 DOM 元素的引用需要使用 …...
5G与物联网的协同发展:打造智能城市的未来
引言 随着科技的不断进步,智能城市的概念已经不再是科幻小说中的幻想,它正在逐步走进我们的生活。而这背后的两大驱动力无疑是 5G和 物联网(IoT)。5G网络以其高速率、低延迟、大容量的优势,与物联网的强大连接能力相结…...
【Qt】实现定期清理程序日志
在现有Qt程序中实现可配置日志保存天数的代码示例,分为界面修改、配置存储和核心逻辑三部分: // 1. 在配置文件(如settings.h)中添加保存天数的配置项 class Settings { public:int logRetentionDays() const {return m_settings…...
git bisect 使用二分法查找引入错误的提交
git bisect 使用二分法查找引入错误的提交 Git bisect 命令官方文档 git bisect 这个命令使用二分搜索算法来查找项目历史中哪个提交引入了一个错误 使用该命令时,首先告诉它一个已知包含错误的 “坏” 提交 以及一个已知在错误出现之前的 “好” 提交 然后 git b…...
一种面向车载时间敏感网络的联合路由与时隙调度负载均衡算法
论文标题 中文标题:一种面向车载时间敏感网络的联合路由与时隙调度负载均衡算法 英文标题:A Joint Routing and Time-Slot Scheduling Load Balancing Algorithm for In-Vehicle TSN 作者信息 Bo Xu, Xinrui Chang, Dongyang Xu, Shuo Wang, Uzair As…...
【弹性计算】容器、裸金属
容器、裸金属 1.容器和云原生1.1 容器服务1.2 弹性容器实例1.3 函数计算 2.裸金属2.1 弹性裸金属服务器2.2 超级计算集群 1.容器和云原生 容器技术 起源于虚拟化技术,Docker 和虚拟机和谐共存,用户也找到了适合两者的应用场景,二者对比如下图…...
Golang关于结构体组合赋值的问题
现在有一个结构体,其中一个属性组合了另外一个结构体,如下所示: type User struct {Id int64Name stringAge int64UserInfo }type UserInfo struct {Phone stringAddress string }如果要给 User 结构体的 Phone 和 Address 赋值的话&am…...
Spark 之 入门讲解详细版(1)
1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室(Algorithms, Machines, and People Lab)开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目,8个月后成为Apache顶级项目,速度之快足见过人之处&…...
【入坑系列】TiDB 强制索引在不同库下不生效问题
文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...
第 86 场周赛:矩阵中的幻方、钥匙和房间、将数组拆分成斐波那契序列、猜猜这个单词
Q1、[中等] 矩阵中的幻方 1、题目描述 3 x 3 的幻方是一个填充有 从 1 到 9 的不同数字的 3 x 3 矩阵,其中每行,每列以及两条对角线上的各数之和都相等。 给定一个由整数组成的row x col 的 grid,其中有多少个 3 3 的 “幻方” 子矩阵&am…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
Java后端检查空条件查询
通过抛出运行异常:throw new RuntimeException("请输入查询条件!");BranchWarehouseServiceImpl.java // 查询试剂交易(入库/出库)记录Overridepublic List<BranchWarehouseTransactions> queryForReagent(Branch…...
Axure零基础跟我学:展开与收回
亲爱的小伙伴,如有帮助请订阅专栏!跟着老师每课一练,系统学习Axure交互设计课程! Axure产品经理精品视频课https://edu.csdn.net/course/detail/40420 课程主题:Axure菜单展开与收回 课程视频:...
开源 vGPU 方案:HAMi,实现细粒度 GPU 切分
本文主要分享一个开源的 GPU 虚拟化方案:HAMi,包括如何安装、配置以及使用。 相比于上一篇分享的 TimeSlicing 方案,HAMi 除了 GPU 共享之外还可以实现 GPU core、memory 得限制,保证共享同一 GPU 的各个 Pod 都能拿到足够的资源。…...
Ubuntu 可执行程序自启动方法
使用 autostart(适用于桌面环境) 适用于 GNOME/KDE 桌面环境(如 Ubuntu 图形界面) 1. 创建 .desktop 文件 sudo vi ~/.config/autostart/my_laser.desktop[Desktop Entry] TypeApplication NameMy Laser Program Execbash -c &…...
Redis:常用数据结构 单线程模型
🌈 个人主页:Zfox_ 🔥 系列专栏:Redis 🔥 常用数据结构 🐳 Redis 当中常用的数据结构如下所示: Redis 在底层实现上述数据结构的过程中,会在源码的角度上对于上述的内容进行特定的…...
js 比较两个对象的值,不相等就push对象的key
在JavaScript中,比较两个对象(object)的值并找出不相等的key,可以通过多种方法实现。下面是一些常用的方法: 方法1:使用JSON.stringify 这种方法适用于简单的对象,其中对象的值是基本类型或可…...












