Day 03 - 安装数据库 MariaDB 在 Amazon Linux 2
启动 EC2 后每小时就要开始收费,务必要记得没有使用的时候就把 EC2 停止(stop),但不要把它终止掉(terminate),终止掉就会把整个个体回收,相对应的设定跟数据都会不见了,而停止状态只会收取 EBS 的费用。
取得 EC2 的公有 IPv4 地址,登入到 EC2,详细操作可以参考 Amazon Elastic Compute Cloud (EC2) 笔记 的 联机到Amazon EC2(Windows) 这个部分,因为目前的系统为 macOS 所以底下的操作会以Mac 为主,设定 1. pem 档的权限,并 2. 以 ec2-user 的使用者登入到云端主机,登入成功后会看到 3. 一些基本操作的提示,如下图所示。
图 1、在 macOS 中透过终端机联机到 AWS EC2
先建立的 EC2 通常会需要先进行手动更新套件,所以执行 sudo yum update
来进行更新。今天的目的是完成数据库的建置、配置与新增使用者跟需要的数据。
安装 MariaDB 在 Amazon Linux 2的步骤如下:
- 先检查一下目前的系统是否已经有安装 mariadb
sudo rpm -qa | grep mariadb
- 搜寻是否在安装仓储中有 mariadb 相关套件
sudo yum search mariadb
- 安装 mariadb 服务器
sudo yum install mariadb-server
图 2、安装 MariaDB 在Amazon Linux 2
- 设定可以开机后启动,并且现在就启动
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
- MariaDB 初始化
sudo mysql_secure_installation
MariaDB初始化设定如下:
- 设定管理者密码,原则上选是 (Y),第一次安装才可以不用密码输入Set root password?[Y/n]
- 移除匿名帐号,原则上选是 (Y) Remove anonymous users?[Y/n]
- 关闭管理者(root)远端登录,原则上选是 (Y) Disallow root login remotely?[Y/n]
- 移除test数据库,原则上选是 (Y) Remove test database and access to it?[Y/n]
- 重新加载权限表,原则上选是 (Y) Reload privilege tables now?[Y/n]
图 3、MariaDB数据库初始化设定
- 新增使用者,数据库,数据表以及内容
有了数据库后,接着把需要用的使用者帐号,数据库,数据表以及数据都一并放入 MariaDB 数据库服务器。输入下面指令登录 MariaDB 数据库,会出现要求输入密码的提示。
mysql -u root -p
进入数据库的指令行操作界面,分别是创建数据库,显示数据库列表,切换数据库。接着创建一个使用者 fishuser 来存取这个数据库,这是一个基本的安全考察,不用都用管理者身份来进行数据库操作,密码是 secretePasswordHere 记得要改成自己的密码;建立一个数据表,包含了四个字段,分别是:流水号(mark),鱼名(fishName),分布(distribution),拉丁名(LatinName)。结果如下图所示。
CREATE DATABASE fishdb;
SHOW DATABASES;
USE fishdb;
GRANT ALL ON fishdb.* TO fishuser@localhost IDENTIFIED BY 'secretePasswordHere';
CREATE TABLE `fishInfoTbl` (
`mark` int(11) NOT NULL AUTO_INCREMENT,
`fishName` varchar(255) NOT NULL,
`distribution` text DEFAULT NULL,
`LatinName` varchar(255) NOT NULL,
PRIMARY KEY (`mark`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
图4、创建系统所需的数据库,管理人员与数据表
最后,将所需要的数据新增到数据表中,并检视结果,如下图所示。
INSERT INTO `fishInfoTbl` (`fishName`, `distribution`, `LatinName`) VALUES
('黄金珍珠虎','黄金珍珠虎,分布于坦干伊克湖沿岸浅滩中,是颇受喜爱的品种。体形扁平、背鳍底部前端突起,由于分布极广,因此有很多变异品种。体色由黄至红都有。属食荤性鱼类。不会攻击其他鱼类,因此可以混养。','Altolamprologus compressiceps'),
('帝王鲷','帝王鲷专以湖底的贝类为食,因此可见其头部圆滑、口器居于下位且短小有力;它们会先将贝类或螺类含入口中,再以口中的咽喉骨将其咬碎;虽然它们平时个性并不特别凶恶,但由于其体型庞大常居于强势地位,在抢食时其吻部容易对其他鱼类造成杀伤力。它们体侧具有两条粗横带、腹部有三、四条不明显的垂直带纹,公鱼成熟后会呈现艳丽的蓝绿色光泽,在后三鳍也有橙黄色的表现。','Chilotilapia rhoadesii'),
('麒麟鹦鹉','唇部厚实,嘴形有圆嘴,平嘴基三角嘴,体色不乏红,黄,铜,金等色,部分鱼只头部较圆润头有隆起,眼睛全是红眼,后三鳍大包尾,体型最大可长到20公分。','Cichlasoma var. Kilin Parrot'),
('蓝茉莉白子','蓝茉莉一直是很好混养的鱼种,不凶,稳定度高,混养也不具有威胁性,喂食颗粒饲料即可。','Cyrtocara moorii Albino'),
('红金波罗','性格较温顺,对水质要求不严,要求宽大水体和砂石、水草的环境,爱在水下层游动。','Heros severus'),
('红钩鼻','雄性和雌性都长到17厘米左右。由于它们的喙和肉质的鼻子,它们非常容易辨认。雄鱼为浅棕色,尾鳍为浅蓝色条纹,背鳍和臀鳍为浅蓝色,雌鱼为无烟灰色。有不同的颜色变体,取决于它们是蓝色、黄色、橙色、斑点(橙色斑点)或这些颜色的组合。无论是雄性还是雌性,都可能相当凶猛。','Labeotropheus Trewavasae Chilumba '),
('红顶珍珠','这是非洲慈鲷爱好者中非常罕见的鱼。即使它是一种有吸引力的鱼,它也不容易被发现,雄性的身体呈金属绿色/蓝色,头顶呈红色。Lethrinops Red Cap 是非洲慈鲷中比较温顺的一种,不应与 岩栖类 等攻击性过强的鱼类一起饲养。来自马拉维湖的孔雀和不太好斗的哈普鱼最适合这种鱼茁壮成长。','Lethrinops sp. red cap'),
('黄水晶','这种来自姆班巴湾的 Placidochromis模仿它的 Jalo Reef 表亲,有着明亮的蓝绿色脸,但在鳃板之后,身体立即变成金黄色,并出现微弱的黑色条纹,这取决于心情。背鳍、臀鳍、腹鳍和尾鳍呈深黑色,带有浅金色饰边,很像黄孔雀。 ','Placidochromis sp. Gold (Mbamba Bay)'),
('皇冠蓝雀','粉蓝慈鲷 (Pseudotropheus socolofi) 原产于莫桑比克附近马拉维湖的沿海水域,生活在岩石海岸线附近,位于湖岸和湖更深区域之间的混合岩石和沙滩区域。它们靠近有岩石洞穴和裂缝的区域,以藻类和微型甲壳动物为食,如果它们感到受到大型鱼类的威胁,它们可以在那里撤退到安全的洞穴或岩石裂缝中。
就 岩栖类 物种而言,粉蓝慈鲷远比大多数人平静得多。再加上它们绚丽的色彩和图案,使它们成为饲养非洲慈鲷的爱好者非常受欢迎的物种。虽然比大多数 岩栖类 物种更安静,但该物种不适合饲养社区鱼类或南美慈鲷的水族馆。','Pseudotropheus socolofi'),
('马纳卡普鲁红背白子神仙','马纳卡普鲁红背白子神仙是一种美丽且备受追捧的野生型淡水天使,生活在缓慢移动的酸性水域,靠近巴西里约内格罗河与亚马逊河的交汇处。在这个特定地点发现的天使在他们的脸上显示出鲜艳的红色,并向上延伸到背鳍。随着年龄的增长,这种颜色会变得更加强烈,并且在理想的水参数下保持最佳状态,尤其是在温度 (80F+) 和软酸性水 (pH 6 – 6.5) 方面。像所有其他淡水天使一样,它们最好在年轻时成群饲养,但成年后会成对饲养。最近开发的白化菌株显示出相同的红色头部颜色以及白色和黄色。','Pterophyllum scalare albino _Manacapuru'),
('非洲王子','非洲王子是一种如同鲈鱼一般的典型的鲈形目的体型的鱼。小型慈鲷,成年个体10~12cm,如同鲈鱼一般的典型的鲈形目的体型,体色橙黄,背鳍近边缘处有一条宽约2mm的黑色条纹非常清晰和显眼。雌雄同形,雄性个体稍大。(区别于世面上地摊杂鲷品种纯正的非洲王子鱼均带黑边,黑边越明显品相越佳,弱势鱼会在受强势鱼压制情况下变得脸部或身体部位发黑)','labidochromis caeruleus') ;
select fishName,LatinName from fishInfoTbl;
quit;
图 5、新增系统所需的数据
參考資料
- How To Install MariaDB on CentOS 8, https://www.cyberciti.biz/faq/how-to-install-mariadb-on-centos-8/
- CentOS 8 - Howto, https://www.cyberciti.biz/faq/category/centos/