【MySQL数据库】Ubuntu下的mysql

news2025/2/23 22:51:46

目录

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数据库的默认路径如下:

  1. 可执行文件:MySQL服务器的可执行文件位于/usr/sbin/mysqld(直接使用which即可查找到),MySQL客户端位于/usr/bin/mysqlmysqld是MySQL服务器的主要执行文件,通过它可以启动、停止和管理MySQL数据库。
  2. 配置文件my.cnf是MYSQL的配置文件,该配置文件包含了MySQL服务器的各种设置选项,如端口号、日志路径、缓冲区大小等。可以通过编辑该配置文件来修改MySQL服务器的配置。MySQL服务器的配置文件通常位于/etc/mysql/mysql.conf.d/mysqld.cnf/etc/mysql/my.cnf
  3. 数据目录:MySQL服务器的数据目录位于/var/lib/mysql。在该目录下,MySQL会存储所有的数据库文件和表数据。在默认的安装配置下,每个数据库都会在该目录下创建一个独立的子目录。
  4. 日志文件:MySQL的日志文件通常位于/var/log/mysql。这些日志文件记录了MySQL服务器的运行状况、错误信息和其他相关日志。
3,my.cnf配置文件

my.cnf是数据库MySQL的核心配置文件。它用于控制MySQL的运行行为和进行性能优化。以下是一些关键的段和配置项:

  1. [client]:这个部分配置影响所有MySQL客户端程序的行为,如连接端口、字符集以及用于本地连接的socket套接字等。例如:

    • port = 3306。指定MySQL客户端连接端口3306(默认连接端口就是3306)。
    • socket = /var/lib/mysql/mysql.sock。用于本地连接的socket套接字路径。
    • default-character-set = utf8mb4。设置客户端默认字符集,一般情况下默认即可。
  2. [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系统自带的数据库(如mysqlinformation_schemaperformance_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客户端的命令行上运行的。

在数据库下建表,本质就是在该目录下建立文件。所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多个用户建立的数据库,一般开发人员会针对每一个应用创建一个数据库,而为保存应用中实体的数据,一般会在数据库中创建多个表结构,以保存程序中实体的数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2299175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

WebRTC与EasyRTC:开启智能硬件音视频通讯的全新旅程

在当今数字化时代,音视频通讯技术正以前所未有的速度革新着我们的生活与工作方式。WebRTC与EasyRTC作为这一领域的佼佼者,正携手为智能硬件的音视频通讯注入强大动力,开启全新的篇章。 一、WebRTC与智能硬件融合的崭新趋势 WebRTC技术&…

基于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的输入上下文长…

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. 时间复杂度分析 …

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…

无人机信号调制技术原理

一、调制技术的必要性 频谱搬移:将低频的基带信号搬移到高频的载波上,便于天线辐射和传播。 信道复用: 利用不同的载波频率或调制方式,实现多路信号同时传输,提高信道利用率。 抗干扰: 通过选择合适的调…

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 …

Django 创建表时 “__str__ ”方法的使用

在 Django 模型中&#xff0c;__str__ 方法是一个 Python 特殊方法&#xff08;也称为“魔术方法”&#xff09;&#xff0c;用于定义对象的字符串表示形式。它的作用是控制当对象被转换为字符串时&#xff0c;应该返回什么样的内容。 示例&#xff1a; 我在初学ModelForm时尝…

img标签的title和alt

img标签的title和alt 显示上 title:鼠标移入到图片上时候显示的内容&#xff1b; alt:图片无法加载时候显示的内容; <div class"box"><div><!-- title --><h3>title</h3><img src"./image/poster.jpg" title"这是封…

Grafana——如何迁移Grafana到一台新服务器

背景 有时候由于服务器更新之类的&#xff0c;我们需要迁移一整套Grafana&#xff0c;这时候该怎么操作呢&#xff1f; 下面让我一步步说明下 安装Grafana 在新的服务器上安装Grafana 这个不再赘述&#xff0c;可以看一下我之前的文章 备份及迁移 迁移配置文件 配置文件即…

Flutter中 List列表中移除特定元素

在 Dart 语言里&#xff0c;若要从子列表中移除特定元素&#xff0c;可以使用以下几种方法&#xff0c;下面为你详细介绍&#xff1a; 方法一&#xff1a;使用 where 方法创建新列表 where 方法会根据指定的条件筛选元素&#xff0c;然后通过 toList 方法将筛选结果转换为新列…

一己之见:嵌入式linux开发板的选择(canmv还是...)

个人了解范围有限&#xff0c;仅仅介绍我略微了解的几个开发板。 野火&#xff0c;核桃&#xff0c;canmv&#xff0c;香蕉&#xff0c;香橙&#xff0c;庐山&#xff0c;地瓜&#xff0c;还有其他...。 野火资料全&#xff0c;型号多&#xff0c;接口丰富&#xff0c;支持usb…

多模态基础模型训练笔记-第一篇InternVL-g

一、TL&#xff1b;DR 将之前所有训练过的大模型的过程都总结和回忆一下&#xff0c;遇到的坑别忘了 二、问题记录 还是注意镜像的选择&#xff0c;选择社区最火的镜像&#xff0c;然后下载好对应的数据&#xff0c;主要显卡的选择&#xff0c;这个时候4090已经带不动了&…

微软AutoGen高级功能——Magentic-One

介绍 大家好&#xff0c;博主又来给大家分享知识了&#xff0c;这次给大家分享的内容是微软AutoGen框架的高级功能Magentic-One。那么它是用来做什么的或它又是什么功能呢&#xff0c;我们直接进入正题。 Magentic-One Magnetic-One是一个通用型多智能体系统&#xff0c;用于…

Unity UI个人总结

个人总结&#xff0c;太简单的直接跳过。 一、缩放模式 1.固定像素大小 就是设置一个100x100的方框&#xff0c;在1920x1080像素下在屏幕中长度占比1/19&#xff0c;在3840x2160&#xff0c;方框在屏幕中长度占比1/38。也就是像素长款不变&#xff0c;在屏幕中占比发生变化 2.…

牛客小白月赛110

A智乃办赛 思路&#xff1a;用group表示是第几个大写英文字母&#xff0c;以A为基础&#xff0c;(n-1)/500为几则往上加几&#xff0c;从而得到应有的字母&#xff0c;用number表示当前组内的编号&#xff0c;(n-1)%5001表示&#xff0c;至于最后的前导0&#xff0c;在输出的时…

用大模型学大模型03-数学基础 概率论 条件概率 全概率公式 贝叶斯定理

要深入浅出地理解条件概率与贝叶斯定理&#xff0c;可以从以下几个方面入手&#xff0c;结合理论知识和实例进行学习&#xff1a; 贝叶斯定理与智能世界的暗语 条件概率&#xff0c;全概率公式与贝叶斯公式的推导&#xff0c;理解和应用 拉普拉斯平滑 贝叶斯解决垃圾邮件分类 …