海外云服务器安装 MariaDB10.6.X (Ubuntu 18.04 记录篇二)
本文首发于 秋码记录
MariaDB 的由来(历史)
谈起新秀MariaDB
,或许很多人都会感到陌生吧,但若聊起享誉开源界
、业界知名的关系型数据库
——Mysql
,想必混迹于互联网的人们(coder
)无不知晓
。
其实mariaDB
是由Mysql
分支出来的一个项目,而且同属于同一个作者(Michael Widenius
)。或许你会纳闷,既然Mysql
如此优秀,作者而又为什么再次创造出一个新的数据库呢?
谈起mariadb
的诞生,那就不得不说Mysql
那命运多舛
的际遇
咯!起初,Mysql
以开源的形式瞬间火爆互联网圈
,这其中就包括创造出 Java 的公司—— sun
,彼时的他们亟需一套小巧且功能强大的数据库,来摆脱其他商业化数据库。故而,sun 公司
看准了时机,斥巨资收购了彼时还处在蓬勃发展
的Mysql
。
时间一晃,来到了2009年
,号称全球数据库巨头 Oracle
以当时看来是天价的价格收购了sun 公司
,作为sun 公司
的附庸品
,当然也卖身
到新雇主
,Mysql
再次改投公司,并非它所愿,实是无奈之举
。
倘若sun 公司
没被Oracle
收购,或许不会出现mariaDB
,毕竟sun 公司
创造出了java
这一从它诞生以来稳居
于年度 program language
(编程语言)排行榜前三
,毫不夸张的说,它影响了一代的互联网的进程
。
可事与愿违
,sun 公司
终将被oracle 公司
收购了。自打oracle公司
并购了sun 公司
,全球数以千万计
的Java Engineer
,便开始为Java
是否还会开源
起了忧虑之心
。
果不其然,oracle 公司
还是向java
开刀了,他们修改了java
的一些开源策略
,如:商业授权
……
也正源于此,作为Mysql
的作者,不得不为mysql
的未来而担忧。然而,现在的mysql
已经属于Oracle 公司
,看似开源出来,但Oracle 公司
随时都有可能将它闭源化
。可他唯一能做的就是从开源
的mysql
开出一个分支,构建出一个新的数据库,而它将改进Mysql
所出现的问题,虽然mariadb
是由mysql
作者主导的,但主要还是靠开源社区
来贡献代码。
安装前准备
我们知道大多数开源软件
,多多少少会使用第三方
(开源工具类库)软件包。虽然,你的项目大可不必依赖
第三方类库,完全由自己着手编码来实现,那也是没问题,但在编写完这些工具库
时,你的项目引入之前,你总得为你所编写的类库
做unit test
吧!
工具类库
代码量不是非常庞大
的话,由你自己编写,亲自做unit test
,这都没什么,毕竟自己从零开始实现一个与第三方
相似的工具类库
,给自己带来的不单单是一种炫技感
,更多的是成就感
、喜悦感
。
可倘若工具类库
代码行数达到上万,甚至十来万行呢?此时的你,再想从头写起与第三方类库
类似的功能,怕是力不从了吧!且不说编写那十来万行的代码所消耗的时间,而是在接下来的事,是需要对它做unit test
,将会让你开始怀疑人生
。
一个开源项目
/产品能赢得越来越多用户的追捧,其中最为重要的一点莫过于产品的迭代更新
速度是否快于竞争对手
/友商。
为了能使产品
在迭代更新
上快于他人,产品
的研发团队往往会将项目中公共模块
抽取出来,形成一个工具类库
,或是使用了第三方开源类库
,从而降低了花在这上面的时间以及精力4,以便能够全身心的着眼于产品
本身。
安装所需的软件包
至于安装mariaDB
前,为何要安装software-properties-common
这个软件包呢?其实你也是可以不安装这个依赖库
,而是直接安装MariaDB
,那也是没问题的!只是在安装MariaDB
过程中,会出现Error
,最终导致无法正常的安装MariaDB
,而出现错误的原因却是当前Linux发行版还未安装某个软件包
。
为了使MariaDB
能够继续的安装下去,你便按照error
提示,安装MariaDB
所需的第三方类库
。
既然是这样的话,我们何不将MariaDB
所需的软件包
提前安装呢!
apt install software-properties-common -y
添加 MariaDB 镜像仓库
无论你当前系统属于哪个Linux 发行版
,使用在线安装软件
时,总是会在当前系统的镜像库
搜寻,以此来下载软件。
当然咯,系统里的镜像仓库的软件版本
或许有些旧,毕竟某些软件更新迭代
快,以至于Linux 发行版
来不及去更新镜像仓库
内的软件版本。
故而,我们可以将需要下载哪个版本的MariaDB
添加到系统镜像仓库
里面。
至于那个MariaDB key
是官方所要求的,你将它下载下来就对咯!
apt-key adv --fetch-keys 'https://mariadb.org/mariadb_release_signing_key.asc'
sudo add-apt-repository 'deb [arch=amd64,arm64,ppc64el] https://mirrors.ustc.edu.cn/mariadb/repo/10.6/ubuntu bionic main'
安装 mariadb-server 和 mariadb-client
热身的差不多了,是该真正露出本领的时刻了,此处应有振聋发聩的掌声,不绝于耳的那种掌声。
使用以下命令来安装MariaDB
的server
和client
。
apt install mariadb-server mariadb-client
设置 Mariadb 的安全信息
在安装完MariaDB
后,我们需要对它做些必要性的安全措施,比如:root
密码、是否使用unix socket
登陆、是否开启远程登陆……
mariadb-secure-installation
mariaDB
的root
密码默认是空
,所以在出现这句Enter current password for root (enter for none):
提示时,你就直接按键盘上的Enter
,也就是回车键
。
随后的Switch to unix socket authentication [Y/n]
,便是询问你是否开启unix socket 认证
。
紧接着一句Change the root password? [Y/n]
,问你是否改变root
密码,毫无疑问,root
密码是需要修改的!
接下来的便是Remove anonymous users?[Y/n]
这么一句,它问你是否移除匿名用户。
之后的一句Disallow root login remotely? [Y/n]n
,则是是否禁止 root 远程登陆
。
再者便是Remove test database and access to it? [Y/n]
,征求你是否需要移除test 数据库和数据
的许可。
尾随其后的Reload privilege tables now? [Y/n] Y
,还是寻求你是否现在来重新加载 privilege
表,以此来更新你上述所做的修改。
root0XXX:~# mariadb-secure-installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
haven't set the root password yet, you should just press enter here.
Enter current password for root (enter for none): #直接按 Enter 键
OK, successfully used password, moving on...
Setting the root password or using the unix socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix socket authentication [Y/n] Y
Enabled successfully!
Reloading privilege tables..
... Success!
You already have your root account protected, so you can safely answer 'n'.
Change the root password? [Y/n] Y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
...Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users?[Y/n] Y
...Success!
Normally, root should only be allowed to connect from 'localhost', This
nsures that
someone cannot guess
the root
password from the
network.
Disallow root login remotely? [Y/n]n
... skipping.
By default, MariaDB comes with a database named 'test' that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] n
... skipping.
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] Y
... Success!
Cleaning up...
All done! If you've completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
root@XXX:~#
查看 Mariadb 服务状态
我们可以使用以下命令来查看当前MariaDB
服务的状态,虽然目前我们知道MariaDB
正处于running
中。
systemctl status mariadb
我们从下面的输出信息,也是可以看出当前的MariaDB
服务正处于running
中。
root@XXX:~# systemctl status mariadb
* mariadb.service - MariaDB 10.6.15 database serverLoaded: loaded (/1ib/systemd/system/mariadb.service; enabled; vendor preset:enabled)Drop-In: /etc/systemd/system/mariadb.service.d|_migrated-from-my.cnf-settings.confActive: active (running) since Sat 2024-08-31 15:03:05 +08; 22min agoDocs: man:mar1adbd(8)https://mariadb.com/kb/en/library/systemd/
Main PID: 701 (mariadbd)Status: "Taking your SQL requests now..."Tasks: 8 (limit:4915)CGroup: /system.slice/mariadb.service|_701 /usr/sbin/mariadbd
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701):2024-08-31 15:03:05 0 [Note]InnoDB: File'./ibtmpl' size is now 12 MB.
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]: 2024-08-31 15:03:05 0 [Note]
InnoDB: 10.6.15 started; log sequence number 42114; transaction id 14
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]: 2024-08-31 15:03:05 0[Note] Plugin'FEEDBACK' is disabled.
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]: 2024-08-31 15:03:05 0[Note)
InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib buffer pool
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701): 2024-08-31 15:03:05 0 [Note] InnoDB: Buffer pool(s) load completed at 240831 15:03:05
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]:2024-08-31 15:03:05 0[Warning] You need to use --log-bin to make --expire-logs-days or --binlog-expire-logs-sec
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]:2024-08-31 15:03:05 0[Note] Server socket created on IP:'127.0.0.1'.
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701):2024-08-31 15:03:05 0 [Note] /usr/sbin/mariadbd: ready for connections.
Aug 31 15:03:05 vps74437279.hosteons.com mariadbd[701]:Version: '10.6.15-MariaDB-1:10.6.15+maria~ubu1804'socket: '/run/mysqld/mysqld.sock'port: 3306mariadb.org b
Aug 31 15:03:05 vps74437279.hosteons.com systemd[1]: Started MariaDB 10.6.15 database server.
lines 1-23/23 (END)
设置开机自启动
systemctl enable mariadb
查看 mariadb 版本
当你在Terminal
输入mysql -u root -p
的时候,你的脑袋是不是有那么一瞬间的迷糊
,不禁纳闷,“我明明安装的是MariaDB
,怎么会去使用mysql
的命令呢?”
对于你的疑惑,作为MariaDB非官方
人员的我,给出了这样的解释:
- 1、上面有讲到
MariaDB
是由mysql
分支而来的,难免有些命令还在使用mysql
。 - 2、或许他们懒得将
mysql
命令修改成mariaDB
了,毕竟MariaDB
这都更新迭代
了多少个版本,要改的话早就改了。(或许是旧版本还没改,新版本可能改了,也未可知。)
mysql -u root -p
添加用户及授权
grant all privileges on *.* to 'root'@'%' identified by 'YourPasswd';
flush privileges;
相关文章:

海外云服务器安装 MariaDB10.6.X (Ubuntu 18.04 记录篇二)
本文首发于 秋码记录 MariaDB 的由来(历史) 谈起新秀MariaDB,或许很多人都会感到陌生吧,但若聊起享誉开源界、业界知名的关系型数据库——Mysql,想必混迹于互联网的人们(coder)无不知晓。 其…...
Mybatis_基础
文章目录 第一章 Mybatis简介1.1 Mybatis特性1.2 和其它持久化层技术对比 第二章 Mybatis的增删改查第三章 Mybatis的增删改查 第一章 Mybatis简介 1.1 Mybatis特性 MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和…...
8Manage采购申请管理:轻松实现手动采购流程自动化
您是否感受到通过手动采购申请流程管理成本的压力? 信息的不充分常常导致现金流的不透明,这已成为财务高管们的常见痛点。本文将展示采购申请管理软件如何帮助您减轻负担,使您能够简化流程。 没有采购申请软件会面临哪些挑战? …...

PADS Router 入门基础教程(一)
有将近三周没有更新过博客了,最近在整理PADS Router 入门基础教程,希望喜欢本系列教程的小伙伴可以点点关注和订阅!下面我们开始进入PADS Router课程的介绍。 一、PADS Router 快捷键 二、课程介绍 本教程主要介绍:PADS Rou…...

一台手机一个ip地址吗?手机ip地址泄露了怎么办
在数字化时代,手机作为我们日常生活中不可或缺的一部分,其网络安全性也日益受到关注。其中一个常见的疑问便是:“一台手机是否对应一个固定的IP地址?”实际上,情况并非如此简单。本文首先解答这一问题&a…...

【扇贝编程】使用Selenium模拟浏览器获取动态内容笔记
文章目录 selenium安装 selenium下载浏览器驱动 获取数据处理数据查找一个元素查找所有符合条件的元素 控制浏览器 selenium selenium是爬虫的好帮手, 可以控制你的浏览器,模仿人浏览网页,从而获取数据,自动操作等。 我们只要让…...

TCP Analysis Flags 之 TCP Port numbers reused
前言 默认情况下,Wireshark 的 TCP 解析器会跟踪每个 TCP 会话的状态,并在检测到问题或潜在问题时提供额外的信息。在第一次打开捕获文件时,会对每个 TCP 数据包进行一次分析,数据包按照它们在数据包列表中出现的顺序进行处理。可…...

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存
如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线…...

JavaScript使用地理位置 API
前言 在JavaScript中,Geolocation API 是一种用于访问用户地理位置的接口。这个API允许网页应用程序获取用户的位置并提供基于位置的服务。 if (navigator.geolocation)navigator.geolocation.getCurrentPosition(function () {},function () {});这个函数中需要传…...
dockerfile部署fastapi项目
dockerfile部署fastapi项目 1、Dockerfile # 使用Python官方镜像作为基础镜像 FROM python:3.8-slim# 更新apt-get源并安装依赖 # RUN apt-get update -y && apt-get install -y git# 设置环境变量 ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1# 创建工作目…...

火语言RPA流程组件介绍--浏览网页
🚩【组件功能】:浏览器打开指定网址或本地html文件 配置预览 配置说明 网址URL 支持T或# 默认FLOW输入项 输入需要打开的网址URL 超时时间 支持T或# 打开网页超时时间 执行后后等待时间(ms) 支持T或# 当前组件执行完成后继续等待的时间 UserAgen…...

【Linux系统学习】2.Linux基础命令
Linux基础命令 Linux的目录结构 Linux命令入门 目录切换相关命令(cd/pwd) 相对路径、绝对路径和特殊路径符 创建目录命令(mkdir) 文件操作命令part1(touch、cat、more) 文件操作命令part2(cp、mv、rm) 查找命令(which、find) grep、wc和管道符…...

ABAP正则表达式 特殊字符处理
REPLACE ALL OCCURRENCES OF REGEX [[:space:]] IN <fs_purhdinfo>-cell_value WITH ."可去掉空格或回车键 REPLACE ALL OCCURRENCES OF : IN <fs_purhdinfo>-cell_value WITH ."可去掉空格或回车键 REPLACE ALL OCCURRENCES OF R…...

【2024高教社杯全国大学生数学建模竞赛】ABCDEF题 问题分析、模型建立、参考文献及实现代码
【2024高教社杯全国大学生数学建模竞赛】ABCDEF题 问题分析、模型建立、参考文献及实现代码 1 比赛时间 北京时间:2024年9月5日 18:00-2024年9月8日20:00 2 思路内容 2.1 往届比赛资料 【2022高教社杯数学建模】C题:古代玻璃制品的成分分析与鉴别方案…...

# VMware 共享文件
VMware tools快速安装 VMware 提供了 open-vm-tools,这是 VMware 官方推荐的开源工具包,通常不需要手动安装 VMware Tools,因为大多数 Linux 发行版(包括 Ubuntu、CentOS 等)都包含了 open-vm-tools,并且已…...

[UVM]3.核心基类 uvm_object 域的自动化 copy() compare() print() pack unpack
1.核心基类:uvm_object (1)虚类只能声明,不能例化。 (2)uvm_object提供的方法 2.域的自动化(field automation) (1)简述 (2)示例 格…...
Java网络编程入门
在现代软件开发中,网络编程是一项不可或缺的技能。Java提供了强大的网络编程支持,使得开发者能够轻松地创建网络应用程序。今天将介绍Java中的网络编程基础,重点讲解Socket和ServerSocket类的使用。 什么是Socket? Socket是网络通…...
前端基础面试题·第三篇——JavaScript(其一)
1.JavaScript数据类型与运算符 数据类型 原始数据类型: 1.Number 2.String 3.Boolean 4.undefined 5.null 6.Symbol 7.bigint 复杂数据类型: 1.Function 2.非函数: Array: 数组 Object: 对象 Date: 日期 RegExp: 正则 Map: 映射 Set: 集合 …...

【机器学习】生成对抗网络(Generative Adversarial Networks, GANs)详解
1.引言 生成对抗网络(Generative Adversarial Networks, GANs)是近年来人工智能领域最具创新性和颠覆性的模型之一。自2014年由Ian Goodfellow及其团队提出以来,GAN的出现彻底改变了生成模型的研究范式。传统的生成模型,如变分自编码器(VAE)、隐马尔可夫模型(HMM)等,…...

QT作业1
1> 手写unique_ptr指针指针 代码: #include <iostream>using namespace std;// 自定义的unique_ptr类模板 template <typename T> class unique_ptr { public:// 构造函数,接收一个指针explicit unique_ptr(T* ptr nullptr) noexcept …...

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?
编辑:陈萍萍的公主一点人工一点智能 未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战,在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…...

关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...

C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
C++中string流知识详解和示例
一、概览与类体系 C 提供三种基于内存字符串的流,定义在 <sstream> 中: std::istringstream:输入流,从已有字符串中读取并解析。std::ostringstream:输出流,向内部缓冲区写入内容,最终取…...

自然语言处理——循环神经网络
自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元(GRU)长短期记忆神经网络(LSTM)…...

LabVIEW双光子成像系统技术
双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...

水泥厂自动化升级利器:Devicenet转Modbus rtu协议转换网关
在水泥厂的生产流程中,工业自动化网关起着至关重要的作用,尤其是JH-DVN-RTU疆鸿智能Devicenet转Modbus rtu协议转换网关,为水泥厂实现高效生产与精准控制提供了有力支持。 水泥厂设备众多,其中不少设备采用Devicenet协议。Devicen…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案
引言 在分布式系统的事务处理中,如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议(2PC)通过准备阶段与提交阶段的协调机制,以同步决策模式确保事务原子性。其改进版本三阶段提交协议(3PC…...

内窥镜检查中基于提示的息肉分割|文献速递-深度学习医疗AI最新文献
Title 题目 Prompt-based polyp segmentation during endoscopy 内窥镜检查中基于提示的息肉分割 01 文献速递介绍 以下是对这段英文内容的中文翻译: ### 胃肠道癌症的发病率呈上升趋势,且有年轻化倾向(Bray等人,2018&#x…...