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

  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 database if 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.rhkb.cn/news/489096.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS:使用Grid构建网格

一、概述 网格布局是由“行”和“列”分割的单元格所组成,通过指定“项目”所在的单元格做出各种各样的布局。网格布局具有较强的页面均分能力,子组件占比控制能力,是一种重要自适应布局,其使用场景有九宫格图片展示、日历、计算器…

(一)强化学习基础概念及学习路径

目录 前言 一、强化学习是什么? 二、强化学习中的基本概念 1.状态 2.动作 3.奖励 4.策略 5.智能体 6.环境 7.智能体与环境交互 三、强化学习路径 总结 前言 强化学习(Reinforcement Learning, RL)是机器学习的范式和方法论之一&a…

六西格玛DMAIC在企业得项目管理中有什么作用

六西格玛(Six Sigma)是一种以数据为基础的管理方法,旨在通过减少缺陷和变异来提高过程质量和效率。DMAIC 是六西格玛中一种常用的改进方法论,适用于现有过程的改进。DMAIC 代表五个阶段:定义(Define&#x…

【C++】简单计算器问题的深度解析与优化对比

博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯问题描述💯实现 1:我的实现代码分析优点不足 💯实现 2:老师的第一种实现代码分析优点不足 💯实现 3:…

Spire.PDF for .NET【页面设置】演示:向 PDF 文档添加页码

在 PDF 文档中添加页码不仅实用,而且美观,因为它提供了类似于专业出版材料的精美外观。无论您处理的是小说、报告还是任何其他类型的长文档的数字副本,添加页码都可以显著提高其可读性和实用性。在本文中,您将学习如何使用Spire.P…

开疆智能Ethernet/IP转Profinet网关连接纳博特控制器配置案例

该案例是西门子PLC通过开疆智能研发的Ethernet/IP转Profinet网关KJ-PNG-108连接纳博特控制器的配置案例首先下载控制器的EDS文件,解析出其中的ethernet参数. 将EDS文件导入解析软件,透过软件可以看到数据长度默认为32字节,连接点为150/100 打…

【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的移动台账管理系统

开题报告 个人财务管理系统的意义在于提高个人财务管理的效率,实现财务稳定,增强经济安全感。收支管理是每个个人和个人组织不可缺少的工作,也是个人财务管理中不可或缺的研究对象。通过信息化地收集和处理收支信息,减少手工记录…

车牌识别OCR授权:助力国产化升级,全面提升道路监控效率

政策背景:国产化升级,推动道路监控产业转型 随着国家对信息安全的重视,国内各大公安、政企机构已进入全面升级国产化平台的实施阶段。根据最新的政策要求,公安和政府部门必须在未来三年内完成平台的国产化替换工作。这一举措不仅…

【算法】【优选算法】哈希表

目录 一、简介二、两数之和三、⾯试题 01.02.判定是否互为字符重排四、217.存在重复元素五、219.存在重复元素 II六、49.字⺟异位词分组 一、简介 哈希表就是一个使用键值对key-value来存储数据的容器。 用于快速查找某个元素O(1)时间复杂度。 应用场景: 频繁查找…

Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF

Latex代码中使用pdf图片,无法预览,提示: Please activate LaTeX Workshop sidebar item to render the thumbnail of a PDF 解决办法: 点击左边这个刷新下即可

uniapp结合movable-area与movable-view实现拖拽功能

前言 因为公司业务开发需要拖拽功能。 ps&#xff1a;该功能只能针对高度一致的&#xff0c;如果高度不一致需要另外二开 演示 开始 <template><view style"height: 100%;"><movable-area :style"{width: 100%, height: allHeight px}"…

访问者模式的理解和实践

在软件开发过程中&#xff0c;设计模式为我们提供了解决常见问题的最佳实践。访问者模式&#xff08;Visitor Pattern&#xff09;是行为设计模式之一&#xff0c;它将数据操作与数据结构分离&#xff0c;使得在不修改数据结构的前提下&#xff0c;能够定义作用于这些元素的新的…

MATLAB直流电机模型,直流电机控制

直流电机控制简介 直流电机&#xff08;DC motor&#xff09;广泛应用于各种机械驱动和电力控制系统中&#xff0c;其运行性能的控制至关重要。为了精准地控制直流电机的输出特性&#xff0c;可以通过不同的控制方式进行调节。常见的控制方式包括电枢电流控制、速度控制、电机位…

【工业机器视觉】基于深度学习的水表盘读数识别(2-数据采集与增强)

【工业机器视觉】基于深度学习的仪表盘识读&#xff08;1&#xff09;-CSDN博客 数据采集与增强 为了训练出适应多种表型和环境条件的模型&#xff0c;确保数据集的质量与多样性对于模型的成功至关重要。高质量的数据不仅需要准确无误、具有代表性&#xff0c;还需要涵盖尽可能…

vscode通过ssh连接远程服务器(实习心得)

一、连接ssh服务器 1.打开Visual Studio Code&#xff0c;进入拓展市场(CtrlShiftX)&#xff0c;下载拓展Remote - SSH 2. 点击远程资源管理器选项卡&#xff0c;并选择远程(隧道/SSH)类别 3. 点击ssh配置&#xff1a;输入你的账号主机ip地址 4.在弹出的选择配置文件中&#xf…

Maven(生命周期、POM、模块化、聚合、依赖管理)详解

Maven构建项目的生命周期 在Maven出现之前&#xff0c;项目构建的生命周期就已经存在&#xff0c;软件开发人员每天都在对项目进行清理&#xff0c;编译&#xff0c;测试&#xff0c;部署等工作&#xff0c;这个过程就是项目构建的生命周期。虽然大家都在不停的做构建工作&…

webstorm开发uniapp(从安装到项目运行)

1、下载uniapp插件 下载连接&#xff1a;Uniapp Tool - IntelliJ IDEs Plugin | Marketplace &#xff08;结合自己的webstorm版本下载&#xff0c;不然解析不了&#xff09; 将下载到的zip文件防在webstorm安装路径下&#xff0c;本文的地址为&#xff1a; 2、安装uniapp插…

unique_ptr自定义删除器,_Compressed_pair利用偏特化减少存储的一些设计思路

主要是利用偏特化&#xff0c; 如果自定义删除器是空类&#xff08;没有成员变量&#xff0c;可以有成员函数&#xff09;&#xff1a; _Compressed_pair会继承删除器&#xff08;删除器作为基类&#xff09;&#xff0c;但_Compressed_pair里不保存删除器对象&#xff0c;只…

【数据结构——栈与队列】环形队列的基本运算(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;编写一个程序实现环形队列的基本运算。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 初始化队列、销毁队列、判断队列是否为空、进队列…

路由器、二层交换机与三层交换机的区别与应用

路由器、二层交换机和三层交换机是常见的网络设备&#xff0c;常常协同工作。它们都可以转发数据&#xff0c;但在功能、工作层级以及应用场景上存在差异。 1. 工作层级 三者在OSI模型中的工作层级不同&#xff1a; 路由器&#xff1a; 工作在 网络层&#xff08;第三层&#…