当前位置: 首页 > news >正文

MariaDB数据库服务器

目录

一、什么是数据库?

二、什么是关系型数据库?

三、数据库字符集和排序规则是什么?

四、常用数据类型

五、Mariadb数据库相关配置案例


一、什么是数据库?

数据库(DB)是以一定方式长期存储在计算机硬盘内,能与多个用户共享,具有尽可能小的冗余度、与应用程序彼此独立的数据的集合。简单来说可以将其看做是用来存储信息文件的文件柜,用户可以将自己的信息文件存储到柜子中,并可以对柜中的信息文件进行增、删、改、查等操作。

二、什么是关系型数据库?

所谓关系型数据库,指的是用户的数据信息是以二维表格的形式来表现的。在二维表格中每一行代表一条记录,用来描述对象的信息;每一列称为一个字段,用来描述对象的某个属性。主流的关系型数据库管理系统软件有Oracle、SQL Server、MySql、Access等。

三、数据库字符集和排序规则是什么?

MariaDB(mysql)数据库在存储用户数据信息时,默认使用的字符集为Iatinl。当用户存储的数据信息是中文字符时,有可能因为此字符集不支持中文字符没有相对应的编码号,导致用户存的中文字符以错误数值存放到数据库中。当用户通过网站查找数据库中的用户数据时,此时由于其使用的字符集没有中文字符对应的编码号,就会以错误的字符形式展现出来,导致用户查询到的数据是一堆乱码。为解决乱码问题可以修改数据库服务器使用的默认字符集为UTF-8。每个字符集都对应的有不同字符之前大小的比较的排序规则。utf8mb4_unicode_ci 是基于标准的Unicode来排序和比较,能够在各种语言之间精确排序,不区分大小写。utf8mb4_general_ci 没有实现Unicode排序规则,在遇到某些特殊语言或者字符集,排序结果可能不一致,不区分大小写。

字符集的设定不仅影响着存储,还会影响客户端和数据库服务器的通信,关于数据编码,mqsql中涉及到下面几个问题:

1、客户端发过来的数据使用什么字符集编码的?

答:character_set_client ,这是用户告诉服务器,客户端发过来的SQL语句是用的什么字符集,要和客户端发出去的字节流采用的编码集一致,如果是shell,那么就是和shell的编码集一致,中文windows的cmd就是gbk。但是对于使用_utf8'xxx'标记的字符,则用标记的字符集解码。

2、接收到数据之后,应该用什么编码格式编码之后再将数据插入到mysql server中?

答:character_set_connection ,MySQL server 接收到用户查询后,按照character_set_client将其转化为character_set_connection设定的字符集,一般就是所操作的表对应的编码集。

3、执行查询之后,查询出来的结果应该用什么编码集编码之后再返回?

答:character_set_results , MySQL将存储的数据转换成character_set_results中设定的字符集发送给用户,客户端获取到的结果就是以这种形式编码的。

4、数据库的各种表的数据,应该用什么字符集编码,以及它们用什么排序?

答:character_set_server决定了服务器的默认编码,character_set_database决定了新建数据库的默认字符集,而数据库的字符集又决定了新建表的默认字符集,而表的字符集又决定了字段的默认字符集,如果没有通过DEFAULT CHARACTER SET=xxx来改变表的字符集,则新表就使用character_set_database指定的字符集。

5.查询语句的字符串比较时,应该在哪一个标准里面来比较,比如:'Mueller' = 'Müller'是为真还是假?

答:collation_connection变量制定了比较的规则。collation_connection的值得形式如下:字符集_语言_ci(大小不写敏感) 或字符集_语言_cs(大小写敏感),像中文这样的,没有大小写,所以只能是ci,比如set collatioin_connection=gbk_chinese_ci。就是设置成中文字典的排序规则。除了按具体语言排序,还可以按照二进制的位置排序,比如utf8_bin。

 

character_set_connection和collatioin_connection是一体的,设置了character_set_connection之后,collation_connection会跟着变成对应的默认排序规则,反之亦然。如果要显示的设置排序规则,可以用 SET NAMES 'charset_name' COLLATE 'collation_name' 。

6.数据库的各种元数据,包括表名、数据库名、密码、用户名、以及comment等,用什么字符集表示?

答:character_set_system表示元数据的字符集,默认就是utf8,而且不要去更改它,否则,因为类似于用户名密码这种东西,可能用各种奇葩的字符去表示,只有utf8能够容纳它们。如果变成了别的字符集,那么用户名和密码就不能用你想要的字符去表示了。

四、常用数据类型

*char和varchar的区别:

1.定义一个char[10]和varchar[10],如果存进去的是‘abcd’,那么char所占的长度依然为10,除了字符‘abcd’外,后面跟六个空格,而varchar就立马把长度变为4了,取数据的时候,char类型的要用trim()去掉多余的空格,而varchar是不需要的。

2.char的存取数度还是要比varchar要快得多,因为其长度固定,方便程序的存储与查找;但是char也为此付出的是空间的代价,因为其长度固定,所以难免会有多余的空格占位符占据空间,可谓是以空间换取时间效率,而varchar是以空间效率为首位的。

3.char的存储方式是,对英文字符(ASCII)占用1个字节,对一个汉字占用两个字节;而varchar的存储方式是,对每个英文字符占用2个字节,汉字也占用2个字节,两者的存储数据都非unicode的字符数据。

五、Mariadb数据库相关配置案例

Server端:

1、安装Mariadb相关软件包

2、开启mariadb数据库服务,并设置开机自启

3、Mariadb服务安装后默认采用无密码登录数据库,为了安全性可以执行mysql_secure_installation 命令来进行安全设置。

4、登到mariadb,查看mariadb服务器默认设置的字符集与其排列规则。

5、修改Mariadb使用的默认字符集和排列规则,改为utf8字符集(此字符集支持中文),避免用户在查询数据时遇到中文出现乱码。

5、为Mariadb数据库管理系统创建一个专用的数据库管理账户,并分配合理的权限。以满足工作者的需求。

创建用户:

*此处只需创建个shanyue用户账户就行了,其它的操作只是为了学习。

授权:

6、防火墙Mariadb服务端口放行流量,允许远程客户登录到数据库。

7、切换到客户端用root用户使用"root"密码远程登录Mariadb服务器,看是否成功。

8、新建test数据库并创建表单mybook,然后进行表单的初始化即定义表单存储数据内容的结构字段。

增:

9、给mybook表单添加三个数据记录。

删:

10、删除test数据库下mybook表单中带有Linux字段的记录。

改:

11、将mybook表单中所有书籍的页数都改为180页,并将HCIP书籍的价格降到110元。

查:

12、查询mybook表单中价格小于200的所有书籍和大于200的书籍。

13、备份test数据库将其下的所有内容导出为一个文件保存到root家目录下。

14、登录到数据库管理系统将test数据库给删除,然后通过test数据库的备份文件恢复数据库内容。

15、登录到Mariadb数据库管理系统,查看test数据库的内容是否恢复成功。

@声明:“山月润无声”博主知识水平有限,以上文章如有不妥之处,欢迎广大IT爱好者指正,小弟定当虚心受教!

相关文章:

MariaDB数据库服务器

目录 一、什么是数据库? 二、什么是关系型数据库? 三、数据库字符集和排序规则是什么? 四、常用数据类型 五、Mariadb数据库相关配置案例 一、什么是数据库? 数据库(DB)是以一定方式长期存储在计算机硬盘内…...

Nat. Mach. Intell 2023 | DrugBAN+:域自适应的可解释双线性插值网络改进药物-靶标预测(DTI)

DrugBAN:Interpretable bilinear attention network with domain adaptation improves drug–target prediction 论文:Interpretable bilinear attention network with domain adaptation improves drug–target prediction | Nature Machine Intellige…...

org.springframework.web.reactive.function.server.ServerResponse设置响应头

记录一下 String host serverRequest.uri().getHost();Consumer<HttpHeaders> headersConsumer consumer -> {consumer.setAccessControlAllowOrigin(host);consumer.setAccessControlAllowCredentials(true);consumer.set("Access-Control-Allow-Headers"…...

高频面试题:如何分别用三种姿势实现三个线程交替打印0到100

最近面试遇到的一道题&#xff0c;需要三个线程交替打印0-100&#xff0c;当时对多线程并不是很熟悉因此没怎么写出来&#xff0c;网上搜了之后得到现 synchronized wait/notifyAll 实现思路&#xff1a;判断当前打印数字和线程数的取余&#xff0c;不等于当前线程则处于等待…...

【git】Idea撤回本地分支、或远程分支提交记录的各种实际场景操作步骤

文章目录 idea撤回本地分支、远程分支场景操作集合场景1&#xff1a;要撤回最后一次本地分支的提交实现效果&#xff1a;操作步骤&#xff1a; 场景2&#xff1a;要撤回最后一次远程分支的提交有撤销记录的&#xff1a;实现效果&#xff1a;操作步骤&#xff1a; 无撤销记录的&…...

FPGA SPI 驱动程序

1.引言 此驱动程序已经完成很久了&#xff0c;花了2个星期的时间&#xff0c;主要是提升程序运行的效率。最近整理文件的时候又看到了&#xff0c;记录一下。 2.程序框架分解 module adc7254_Ctrl(input sys_clk, //system clkc 50Minput re…...

【实战】十一、看板页面及任务组页面开发(五) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(二十七)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求五、CSS 其实很简单 - 用 CSS-in-JS 添加样式六、用户体验优化 - 加载中和错误状态处理七、Hook&…...

mac m1 docker 安装kafka和zookeeper

获取本地ip地址 ifconfig en0 192.168.0.105. 下面的ip都会使用到 1、拉取镜像 docker pull wurstmeister/zookeeper docker pull wurstmeister/kafka 2、启动容器 启动 zookeeper docker run -d --name zookeeper -p 2181:2181 映射 3、 启动 kafka 注意&#xff…...

宏观经济和风电预测误差分析(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

GO学习之 搜索引擎(ElasticSearch)

GO系列 1、GO学习之Hello World 2、GO学习之入门语法 3、GO学习之切片操作 4、GO学习之 Map 操作 5、GO学习之 结构体 操作 6、GO学习之 通道(Channel) 7、GO学习之 多线程(goroutine) 8、GO学习之 函数(Function) 9、GO学习之 接口(Interface) 10、GO学习之 网络通信(Net/Htt…...

Sentinel —实时监控

Sentinel 提供对所有资源的实时监控。如果需要实时监控&#xff0c;客户端需引入以下依赖&#xff08;以 Maven 为例&#xff09;&#xff1a; <dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-transport-simple-http</artif…...

接口优化通用方案

目录 批量异步、回调缓存预取池化并行锁粒度索引大事务海量数据 批量 批量思想&#xff1a;批量操作数据库 优化前&#xff1a; //for循环单笔入库 for(TransDetail detail:transDetailList){ insert(detail); } 优化后&#xff1a; batchInsert(transDetailList); 异步、回…...

用Visual Studio 2022的.map文件来查看C++变量在内存中的布局情况

先看几个实例 代码1 #include <iostream> int data_arr[32768]; int main() {data_arr[1] 11;std::cout<<"data_arr[1]: " << data_arr[1] << std::endl;return data_arr[1]; } 上述代码在Win10 X64&#xff0c;MSVC Release模式下编译&…...

使用代理突破浏览器IP限制

一、实验目的: 主要时了解代理服务器的概念&#xff0c;同时如何突破浏览器IP限制 二、预备知识&#xff1a; 代理服务器英文全称是Proxy Server&#xff0c;其功能就是代理网络用户去取得网络信息。形象的说&#xff1a;它是网络信息的中转站&#xff0c;特别是它具有一个cac…...

HuggingFace中的 Files and versions 如何优雅下载到本地?(Python requests,tqdm)

前言 在使用huggingface把玩各种大模型时&#xff0c;如果选择从远程加载模型&#xff0c;这个过程可能因为网络问题而非常耗时甚至直接失败&#xff0c;所以把模型、分词器等相关文件下载到本地&#xff0c;再直接从本地加载就成了不可回避的流程。 在进入具体版本的模型后&…...

三、原型模式

一、什么是原型模式 原型&#xff08;Prototype&#xff09;模式的定义如下&#xff1a;用一个已经创建的实例作为原型&#xff0c;通过复制该原型对象来创建一个和原型相同或相似的新对象。在这里&#xff0c;原型实例指定了要创建的对象的种类。用这种方式创建对象非常高效&a…...

transformer实现词性标注

1、self-attention 1.1、self-attention结构图 上图是 Self-Attention 的结构&#xff0c;在计算的时候需要用到矩阵 Q(查询), K(键值), V(值)。在实际中&#xff0c;Self-Attention 接收的是输入(单词的表示向量 x组成的矩阵 X) 或者上一个 Encoder block 的输出。而 Q, K, V…...

Java中异或操作和OTP算法

最近在研究加密算法&#xff0c;发现异或操作在加密算法中用途特别广&#xff0c;也特别好用。下面以Java语言为例&#xff0c;简单记录一下异或操作&#xff0c;以及在算法中的使用&#xff0c;包括常用的OTP算法。 一&#xff0c;异或操作特征 1&#xff0c; 相同出0&#…...

K8S最新版本集群部署(v1.28) + 容器引擎Docker部署(下)

温故知新 &#x1f4da;第三章 Kubernetes各组件部署&#x1f4d7;安装kubectl&#xff08;可直接跳转到安装kubeadm章节&#xff0c;直接全部安装了&#xff09;&#x1f4d5;下载kubectl安装包&#x1f4d5;执行kubectl安装&#x1f4d5;验证kubectl &#x1f4d7;安装kubead…...

女子垒球运动的发展·垒球1号位

女子垒球运动的发展 1. 女子垒球运动的起源和发展概述 女子垒球运动&#xff0c;诞生于19世纪末的美国&#xff0c;作为棒球运动的衍生品&#xff0c;经过百年的积淀&#xff0c;已在全球范围内广泛传播&#xff0c;形成了丰富的赛事文化。她的起源&#xff0c;可以追溯到19世…...

Debian 30 周年,生日快乐!

导读近日是 Debian 日&#xff0c;也是由伊恩-默多克&#xff08;Ian Murdock&#xff09;创立的 Debian GNU/Linux 通用操作系统和社区支持的 Debian 项目 30 周年纪念日。 不管你信不信&#xff0c;从已故的伊恩-默多克于 1993 年 8 月 16 日宣布成立 Debian 项目&#xff0c…...

字符串匹配的Rabin–Karp算法

leetcode-28 实现strStr() 更熟悉的字符串匹配算法可能是KMP算法, 但在Golang中,使用的是Rabin–Karp算法 一般中文译作 拉宾-卡普算法,由迈克尔拉宾与理查德卡普于1987年提出 “ 要在一段文本中找出单个模式串的一个匹配&#xff0c;此算法具有线性时间的平均复杂度&#xff0…...

傅里叶变换(FFT)笔记存档

参考博客&#xff1a;https://www.luogu.com.cn/blog/command-block/fft-xue-xi-bi-ji 目录&#xff1a; FFT引入复数相关知识单位根及其相关性质DFT过程&#xff08;难点&#xff09;DFT结论&#xff08;重要&#xff09;IDFT结论&#xff08;重要&#xff09;IDFT结论证明&…...

ELK安装、部署、调试 (二) ES的安装部署

ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎&#xff0c;基于RESTful web接口操作ES&#xff0c;也可以利用Java API。Elasticsearch是用Java开发的&#xff0c;并作为Apache许可条款下的开放源码发布&#xff0c;是当前流行的企业…...

Android 13 - Media框架(8)- MediaExtractor

上一篇我们了解了 GenericSource 需要依赖 IMediaExtractor 完成 demux 工作&#xff0c;这一篇我们就来学习 android media 框架中的第二个服务 media.extractor&#xff0c;看看 IMediaExtractor 是如何创建与工作的。 1、MediaExtractorService media.extractor 和 media.p…...

Flutter 混合开发调试

针对Flutter开发的同学来说&#xff0c;大部分的应用还是Native Flutter的混合开发&#xff0c;所以每次改完Flutter代码&#xff0c;运行整个项目无疑是很费时间的。所以Flutter官方也给我们提供了混合调试的方案【在混合开发模式下进行调试】&#xff0c;这里以Android Stud…...

C语言每日一练------(Day3)

本专栏为c语言练习专栏&#xff0c;适合刚刚学完c语言的初学者。本专栏每天会不定时更新&#xff0c;通过每天练习&#xff0c;进一步对c语言的重难点知识进行更深入的学习。 今天练习题的关键字&#xff1a; 尼科彻斯定理 等差数列 &#x1f493;博主csdn个人主页&#xff1a…...

14、监测数据采集物联网应用开发步骤(10)

监测数据采集物联网应用开发步骤(9.2) Modbus rtu协议开发 本章节在《监测数据采集物联网应用开发步骤(7)》基础上实现可参考《...开发步骤(7)》调试工具&#xff0c;本章节代码需要调用modbus_tk组件&#xff0c;阅读本章节前建议baidu熟悉modbus rtu协议内容 组件安装modb…...

Linux禅道上修改Apache 和 MySQL 默认端口号

1. 修改Apache默认端口号 80 cd /opt/zbox/etc/apachevim httpd.conf :wq 保存 2. 修改MySQL默认端口号 3306 cd /opt/zbox/etc/mysql vim my.cnf :wq 保存 3. 重启服务 ./zbox restart...

操作教程|通过1Panel开源Linux面板快速安装DataEase

DataEase开源数据可视化分析工具&#xff08;dataease.io&#xff09;的在线安装是通过在服务器命令行执行Linux命令来进行的。但是在实际的安装部署过程中&#xff0c;很多数据分析师或者业务人员经常会因为不熟悉Linux操作系统及命令行操作方式&#xff0c;在安装DataEase的过…...