MariaDB数据库服务器

2023-11-17

目录

一、什么是数据库?

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

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

四、常用数据类型

五、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爱好者指正,小弟定当虚心受教!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MariaDB数据库服务器 的相关文章

随机推荐

  • CSS 初始化 base.css 文件

    公共样式 body h1 h2 h3 h4 h5 h6 form fieldset div dl dt dd ul ol li input button textarea p th td a img strong margin 0px pa
  • antd Upload上传报Uncaught TypeError: items.map is not a function错误

    在写项目的时候 使用到了antd里面的Upload来上传文件 写好之后运行报错 代码是这样的 const uploadProps action createTheURL software stu score upload method PO
  • 如何查看服务器文件读写未释放流,传输管理_查看及释放请求(Requests)

    一套运维的ERP系统 通常由开发 测试 生产等多台服务器组成 测试 生产服务器常规情况是不能进行配置和程序维护 Transaction SCC4 详见 定义客户端 Client 变更是在开发服务器中完成 在开发服务器中 将配置数据和维护程序
  • 在vscode中使用xdebug调试PHP---绝对解决远程xdebug调试不了的问题

    在vscode中使用xdebug调试PHP 绝对解决远程xdebug调试不了的问题 1 vscode插件安装 2 检查并安装php的xdebug扩展 php m 3 修改远程主机上php ini中的xdebug的配置信息 vi php in
  • dubbo_远程同步调用原理

    Dubbo缺省协议采用单一长连接和NIO异步通讯 适合于小数据量大并发的服务调用 以及服务消费者机器数远大于服务提供者机器数的情况 Dubbo缺省协议 使用基于mina1 1 7 hessian3 2 1的tbremoting交互 连接个数
  • 使用 T5 模型来做文本分类任务的一些总结

    文章目录 T5 text2text 模型如何做 text classification 优化器和调度器 optimizer and scheduler 学习率设置 完整训练代码 Reference T5 paper Exploring th
  • Arduino使用TinyML实现水果识别

    在本文中 板载手势传感器将用于收集对象识别数据 这些数据将用于创建TensorFlow Lite模型 该模型可用于识别特定对象 电路板的接近传感器功能将用于识别物体何时靠近电路板 而RGB传感器用于首先收集物体的颜色数据 然后正确识别物体
  • ios开发 上传到App Store 时出错. iTunes Store Operation Failed, An Error occurred uploading to the iTunes ...

    ios开发 上传到App Store 时出错 iTunes Store Operation Failed An Error occurred uploading to the iTunes store 的解决方法 网上找了很多 如下 当然没
  • 玩转ESP8266-01——AT指令集

    该指令集是接上一个 链接 初识AT指令 全部是根据本人在使用esp8266过程中用过的指令 可能有不全 有错误 还请理解指正 一起学习 AT指令集 一 基础指令 1 测试指令 2 复位指令 重启 二 设置指令 1 设置波特率 2 设置工作模
  • 程序员如何做副业可以实现财富自由?

    这几年呢 我做包括自媒体在内的各种副业 也挣了一些钱 更有想象不到的一些收获 最近呢 也有一些朋友问我说晚风怎么样做一些副业 那今天呢 我就给大家分享五点 我认为做副业必须要考虑的问题 1 副业和主业尽量相关 那第一点呢 就是如果你决定做副
  • C++的指针与引用可能并不难,只是你没理解

    目录 复合类型 引用 引用即别名 引用的定义 引用的两种例外情况 指针 获取对象的地址 指针值 利用指针访问对象 某些符号有多重含义 空指针 建议 初始化所有指针 赋值和指针 其他指针操作 void 指针 理解复合类型的声明 定义多个变量
  • 统计学中的方差分析

    文章目录 1 0 方差分析 1 1方差分析概念 1 2 单因素方差分析 1 2 1 单因素方差分析 1 2 2 方差分析基本数语 1 2 3 造成误差的原因 1 3 方差分析的3个假定 1 4 方差分析的步骤 2 0 总结 1 0 方差分析
  • vue3项目打包后整合到springboot项目中运行

    概述 一般来说 前后端分离项目 比如vue3 springboot的前后端分离项目 一般把vue3项目打包后部署到nginx或者tomcat上面 springboot项目单独打包 那如果想把vue3项目打包后直接部署到springboot项
  • 对矩阵的处理 MATLAB

    矩阵 1 创建矩阵 1 直接输入法s 1 1 2 2 3 3 4 4 结果如图 2 利用某些函数zeros或ones创建 3 复数矩阵 直接按照直接输入法来建立矩阵 但是元素可以直接打成复数的形式 a bj 2 还有就是分别建立一个实部还有
  • Android mob(sharesdk)微信分享/微信朋友圈分享/QQ分享/QQ空间分享/新浪微博分享(自定义)

    使用场景 H5混合开发转Android 原生开发 之前也是用的友盟分享 微信原生 QQ原生 微博原生分享 今天这个项目恰好是用的mob的sharesdk分享 老实说 还是第一次使用 一开始接手项目的时候 还以为mob是个后台 来一张效果图
  • pandorabox php7,新路由3newifi D2专用潘多拉PandoraBox固件SFE快速转发超强信号不掉速eeprom...

    今天就分享一个这次给新路由3 newifi3 PandoraBox 潘多拉固件下载刷的第三方固件潘多拉PandoraBox固件 PandoraBox是什么 PandoraBox 是基于LEDE OpenWrt框架高度定制的中文本地化固件 应
  • HTML语言中vw的用法,CSS中如何使用视窗单位

    视窗 Viewport 单位已经有了好几年了 但我们并没有看到它被经常使用 它们现在正在被所有的主流浏览器所支持并提供独特的功能使它在特定情况下非常有用 特别是那些涉及响应式的设计 介绍视窗 Viewport 单位 视窗 Viewport
  • arouter 自定生成autowired

    原文地址 Evil Mouth s Blog ARouter Autowired 自动注入 May 31 2020 前言 ARouter 有一个 Autowired 的注解 能自动帮我们赋值一些变量 例如 public class Main
  • HBase 维护--查看HLog和HFile

    查看HLog 看了一些文章 HBase高可靠性是实现了HLog Write ahead Log 机制 那么HLog到底存在哪里了呢 首先去HDFS的 hbase目录查看一下 hadoop fs ls R hbase 可以看到hbase下面有
  • MariaDB数据库服务器

    目录 一 什么是数据库 二 什么是关系型数据库 三 数据库字符集和排序规则是什么 四 常用数据类型 五 Mariadb数据库相关配置案例 一 什么是数据库 数据库 DB 是以一定方式长期存储在计算机硬盘内 能与多个用户共享 具有尽可能小的冗