iT邦幫忙

2021 iThome 鐵人賽

DAY 3
1
AI & Data

觀賞魚辨識的YOLO全餐系列 第 3

安裝資料庫 MariaDB 在 Amazon Linux 2-Day 03

安裝資料庫 MariaDB 在 Amazon Linux 2-Day 03

啟動 EC2 後每小時就要開始收費,務必要記得沒有使用的時候就把EC2停止(stop),但不要把它終止掉(terminate),終止掉就會把整個個體回收,相對應的設定跟資料都會不見了,而停止狀態只會收取 EBS 的費用。

取得 EC2 的公有 IPv4 地址,登入到 EC2,詳細操作可以參考Amazon Elastic Compute Cloud (EC2)連線到 Amazon EC2 (Windows) 這個部分,因為目前的系統為 macOS 所以底下的操作會以 Mac 為主,設定 1.pem 檔的權限,並 2.以 ec2-user 的使用者登入到雲端主機,登入成功後會看到 3. 一些基本操作的提示,如下圖所示。

https://ithelp.ithome.com.tw/upload/images/20210903/20129510DLz4i2bvfJ.png
圖 1、在 macOS 中透過終端機連線到 AWS EC2

先建立的 EC2 通常會需要先進行手動更新套件,所以執行"sudo yum update"來進行更新。今天的目的是完成資料庫的建置、配置與新增使用者跟需要的資料。

安裝 MariaDB 在 Amazon Linux 2 的步驟如下:

  1. 先檢查一下目前的系統是否已經有安裝 mariadb
sudo rpm -qa | grep mariadb
  1. 搜尋是否在安裝倉儲中有 mariadb 相關套件
sudo yum search mariadb
  1. 安裝 mariadb 伺服器
sudo yum install mariadb-server

https://ithelp.ithome.com.tw/upload/images/20210903/20129510nY8aK4tDxC.png
圖 2、安裝 MariaDB 在 Amazon Linux 2

  1. 設定可以開機後啟動,並且現在就啟動
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
  1. 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]

https://ithelp.ithome.com.tw/upload/images/20210903/20129510vDyuFEwP2e.png
圖 3、MariaDB 資料庫初始化設定

  1. 新增使用者,資料庫,資料表以及內容

有了資料庫後,接著把需要用的使用者帳號,資料庫,資料表以及資料都一併放入 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;

https://ithelp.ithome.com.tw/upload/images/20210903/20129510NLF2Z6JwPA.jpg
圖 4、創建系統所需的資料庫,管理人員與資料表

最後,將所需要的資料新增到資料表中,並檢視結果,如下圖所示。

INSERT INTO `fishInfoTbl` (`fishName`, `distribution`, `LatinName`) VALUES
('黃金珍珠虎', '黃金珍珠虎,分佈於坦幹伊克湖沿岸淺灘中,是頗受喜愛的品種。體形扁平、背鰭底部前端突起,由於分佈極廣,因此有很多變異品種。體色由黃至紅都有。屬食葷性魚類。不會攻擊其他魚類,因此可以混養。', 'Altolamprologus compressiceps'),
('帝王鯛', '帝王鯛專以湖底的貝類為食,因此可見其頭部圓滑、口器居於下位且短小有力;牠們會先將貝類或螺類含入口中,再以口中的咽喉骨將其咬碎;雖然牠們平時個性並不特別凶惡,但由於其體型龐大常居於強勢地位,在搶食時其吻部容易對其他魚類造成殺傷力。牠們體側具有兩條粗橫帶、腹部有三、四條不明顯的垂直帶紋,公魚成熟後會呈現豔麗的藍綠色光澤,在後三鰭也有橙黃色的表現。', 'Chilotilapia rhoadesii'),
('麒麟鸚鵡', '唇部厚實,嘴形有圓嘴,平嘴基三角嘴,體色不乏紅,黃,銅,金等色,部分魚只頭部較圓潤頭有隆起,眼睛全是紅眼,後三鰭大包尾,體型最大可長到20公分。', 'Cichlasoma var. Kilin Parrot'),
('藍茉莉白子', '藍茉莉一直是很好混養的魚種,不兇,穩定度高,混養也不具有威脅性,餵食顆粒飼料即可。', 'Cyrtocara moorii Albino'),
('紅金波羅', '性格較溫順,對水質要求不嚴,要求寬大水體和砂石、水草的環境,愛在水下層遊動。', 'Heros severus');

select fishName,LatinName from fishInfoTbl;
quit;

https://ithelp.ithome.com.tw/upload/images/20210903/20129510yAZUThxKhP.png
圖 5、新增系統所需的資料

參考資料


上一篇
選擇具有 GPU 的 EC2 並完成配置-Day 02
下一篇
安裝 Django 在 Amazon Linux 2-Day 04
系列文
觀賞魚辨識的YOLO全餐38

尚未有邦友留言

立即登入留言