【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客户端的命令行上运行的。

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch设置密码访问

1 用户认证介绍 默认ES是没有设置用户认证访问的,所以每次访问时,直接调相关API就能查询和写入数据。现在做一个认证,只有通过认证的用户才能访问和操作ES。 2 开启加密设置 1.生成证书文件 /usr/share/elasticsearch/bin/elasticsearch-…

深入理解 CSS 文本换行: overflow-wrap 和 word-break

前言 正常情况下,在固定宽度的盒子中的中文会自动换行。但是,当遇到非常长的英文单词或者很长的 URL 时,文本可能就不会自动换行,而会溢出所在容器。幸运的是,CSS 为我们提供了一些和文本换行相关的属性;今…

Java 垃圾回收机制详解

1 垃圾回收的概念 垃圾回收(Garbage Collection,GC)是自动管理内存的一种机制,用于释放不再使用的对象所占用的内存空间,防止内存溢出。垃圾回收器通过识别和回收那些已经死亡或长时间未使用的对象,来优化…

RabbitMQ全局流量控制

RabbitMQ全局流量控制 流控机制流控是对什么进行控制?rabbitmq进程邮箱流控机制是什么? 流控原理流控原理流程 流控状态显示流控对象流控机制对象主要进程各进程状态情形分析 性能提升提升队列性能方式 当消息积压时,消息会进入到队列深处&am…

Jetpack Compose赋能:以速破局,高效打造非凡应用

Android Compose 是谷歌推出的一种现代化 UI 框架,基于 Kotlin 编程语言,旨在简化和加速 Android 应用开发。它以声明式编程为核心,与传统的 View 系统相比,Compose 提供了更直观、更简洁的开发体验。以下是对 Android Compose 的…

40 基于单片机的温湿度检测判断系统

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于STC89C52单片机,采用dht11温湿度传感器检测温湿度, 通过lcd1602显示屏各个参数,四个按键分别可以增加温湿度的阈值, 如果超过阈值,则…

【cocos creator】按照行列数创建格子布局

调用 this.creatLayout(5, 5, this.boxNode, this.rootNode) //限制数量 this.creatLayout(5, 5, this.boxNode, this.rootNode, cc.v3(0, 0), 10, 10, 23) /*** 创建格子布局* param xCount 列数量* param yCount 行数量* param prefab 预制体* param root 根节点* param root…

211-基于FMC的1路1.5G ADC 1路 2.5G DAC子卡

一、板卡概述 FMC-1AD-1DA-1SYNC是我司自主研发的一款1路1G AD采集、1路2.5G DA回放的FMC、1路AD同步信号子卡。板卡采用标准FMC子卡架构,可方便地与其他FMC板卡实现高速互联,可广泛用于高频模拟信号采集等领域。 二、功能介绍 2.1 原理框图 2.2 硬件…

前端性能优化(理念篇)

前端性能优化(理念篇) 前言 其实前端性能优化,按照我的理解,首先你公司的硬件条件跟其它资源跟的上,比如服务器资源,宽带怎么样,还有后端接口响应如何,这些资源都具备后&#xff0…

Y3编辑器文档4:触发器1(界面及使用简介、变量作用域、入门案例)

文章目录 一、触发器简介1.1 触发器界面1.2 ECA语句编辑及快捷键1.3 参数设置1.4 变量设置1.5 实体触发器1.6 触发器复用 二、触发器的多层结构2.1 子触发器(在游戏内对新的事件进行注册)2.2 触发器变量作用域 三、入门案例3.1 使用触发器实现瞬间移动3.…

3D相框案例讲解(详细)

前言 通过现阶段的学习,我们已经掌握了HTML,CSS和JS部分的相关知识点,现在让我们通过一篇案例,来巩固我们近期所学的知识点。 详细视频讲解戳这里 任务一 了解目标案例样式 1.1了解案例 3D相框 1.2 分析案例 首先我们看到一个…

网络安全漏洞挖掘之漏洞SSRF

SSRF简介 SSRF(Server-Side Request Forgery:服务器端请求伪造是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。一般情况下,SSRF攻击的目标是从外网无法访问的内部系统。(正是因为它是由服务端发起的,所以它能够请求到与它相连而与外…

简单的Java小项目

学生选课系统 在控制台输入输出信息&#xff1a; 在eclipse上面的超级简单文件结构&#xff1a; Main.java package experiment_4;import java.util.*; import java.io.*;public class Main {public static List<Course> courseList new ArrayList<>();publi…

VPN模式

拓扑结构 实验图&#xff1a; 路由器router 配置 DHCP配置 需要右键激活 路由器项配置网关 dns项配置ip DNS服务配置 正向区域 选择不允许动态更新 反向区域 创建主机 正向 验证是否创建成功 反向查找区域 输入网段 使用默认名称---不允许动态更新 KALI机的验证 web服务…

IS-IS协议

IS-IS协议介绍 IS-IS&#xff08;Intermediate System to Intermediate System&#xff09;协议是一种链路状态的内部网关协议&#xff08;IGP&#xff09;&#xff0c;用于在同一个自治系统&#xff08;Autonomous System, AS&#xff09;内部的路由器之间交换路由信息。IS-I…

Git-基础操作命令

目录 Git基础操作命令 case *查看提交日志 log 版本回退 get add . Git基础操作命令 我们创建并且初始化这个仓库以后&#xff0c;我们就要在里面进行操作。 Git 对于文件的增删改查存在几个状态&#xff0c;这些修改状态会随着我们执行Git的命令而发生变化。 untracked、…

Java 枚举

目录 枚举是什么 常用方法 构造方法 枚举的优缺点 枚举和反射 实现单例模式 枚举是什么 枚举&#xff08;enum&#xff09;&#xff1a;是一种特殊的类&#xff0c;用于定义一组常量&#xff0c;将其组织起来。枚举使得代码更具有可读性和可维护性&#xff0c;特别是在处…

服务器限制某个端口只允许特定IP访问(处理第三方依赖漏洞)

最近项目部署之后&#xff0c;有些客户开始进行系统系统漏洞扫描&#xff0c;其中出现问题多的一个就是我们项目所依赖的Elasticsearch&#xff08;es检索服务&#xff09;&#xff0c;很容易就被扫出来各种高危漏洞&#xff0c;而且这些漏洞我们在处理起来是很棘手的&#xff…

安卓 文件管理相关功能记录

文件管理细分为图片、视频、音乐、文件四类 目录 权限 静态声明权限 动态检查和声明权限方法 如何开始上述动态申请的流程 提示 图片 获取图片文件的对象列表 展示 删除 视频 获取视频文件的对象列表 获取视频file列表 按日期装载视频文件列表 展示 播放 删除…