[toc]
ecs進階6天 day5
PolarDB資料庫簡介
是阿裡雲自研的下一代關系型雲資料庫,有三個獨立的引擎,分别可以100%相容MySQL、100%相容PostgreSQL、高度相容Oracle文法,存儲容量最高可達100TB,單庫最多可擴充到16個節點,适用于企業多樣化的資料庫應用場景。
PolarDB采用存儲和計算分離的架構,所有計算節點共享一份資料,提供分鐘級的配置升降級、秒級的故障恢複、全局資料一緻性和免費的資料備份容災服務。PolarDB既融合了商業資料庫穩定可靠、高性能、可擴充的特征,又具有開源雲資料庫簡單開放、自我疊代的優勢,例如PolarDB MySQL性能最高可以提升至MySQL的6倍,而成本隻有商用資料庫的1/10。叢集架構,計算與存儲分離。
叢集架構,計算與存儲分離。
PolarDB采用多節點叢集的架構,叢集中有一個Writer節點(主節點)和多個Reader節點(讀節點),各節點通過分布式檔案系統(PolarFileSystem)共享底層的存儲(PolarStore)。
讀寫分離。
當應用程式使用叢集位址時,PolarDB MySQL/PostgreSQL通過内部的代理層(Proxy)對外提供服務,應用程式的請求都先經過代理,然後才通路到資料庫節點。代理層不僅可以做安全認證和保護,還可以解析SQL,把寫操作(例如事務、UPDATE、INSERT、DELETE、DDL等)發送到主節點,把讀操作(例如SELECT)均衡地分發到多個隻讀節點,實作自動的讀寫分離。對于應用程式來說,就像使用一個單點的MySQL資料庫一樣簡單。内部的代理層(Proxy)後續将支援PolarDB相容Oracle文法引擎。
- 優勢
您可以像使用MySQL、PostgreSQL、Oracle一樣使用PolarDB,此外,PolarDB還有傳統資料庫不具備的優勢:
容量大。
最高100TB,您不再需要因為單機容量的天花闆而去購買多個執行個體做分片,由此簡化應用開發,降低運維負擔。
高成本效益。
PolarDB的計算與存儲分離,每增加一個隻讀節點隻收取計算資源的費用,而傳統的隻讀節點同時包含計算和存儲資源,每增加一個隻讀節點需要支付相應的存儲費用。
PolarDB的存儲空間無需手動配置,根據資料量自動伸縮,您隻需為實際使用的資料量按小時付費。
為了更好地幫助您降低存儲成本,PolarDB推出了預付費形式的存儲包。當您的資料量較大時,推薦您使用PolarDB存儲包,相比按小時付費,預付費購買存儲包有折扣,購買的容量越大,折扣力度就越大。
分鐘級彈性。
存儲與計算分離的架構,配合共享存儲,使得快速更新成為現實。
讀一緻性。
叢集位址利用LSN(Log Sequence Number)確定讀取資料時的全局一緻性,避免因為主備延遲引起的不一緻。
毫秒級延遲(實體複制)。
利用基于Redo的實體複制代替基于Binlog的邏輯複制,提升主備複制的效率和穩定性。即使對大表進行加索引、加字段等DDL操作,也不會造成資料庫的延遲。
無鎖備份。
利用存儲層的快照,可以在60秒内完成對2TB資料量大小的資料庫的備份,而且備份過程不會對資料庫加鎖,對應用程式幾乎無影響,全天24小時均可進行備份。
搭建門戶網站
- 使用xshell連接配接ecs伺服器安裝apache,php
yum -y install httpd httpd-manual mod_ssl mod_perl mod_auth_mysql
安裝php擴充
yum -y install php php-mysql gd php-gd gd-devel php-xml php-common php-mbstring php-ldap php-pear php-xmlrpc php-imap
執行以下指令下載下傳并安裝MySQL。
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
4. 執行以下指令啟動MySQL資料庫。
systemctl start mysqld
1. 在ECS伺服器上,執行以下指令,安裝Git。
yum -y install git
2. 在ECS伺服器上,執行以下指令下載下傳PbootCMS源碼檔案。
cd ~ && git clone https://gitee.com/hnaoyun/PbootCMS.git
3. 執行以下指令将安裝包拷貝到Apache的wwwroot目錄下。
cp -r PbootCMS/* /var/www/html/
4. 執行以下指令修改站點根目錄檔案權限。
chmod -R a+w /var/www/html
4. 向資料庫中導入CMS的初始資料。
執行以下指令初始化資料庫pbootcms的表結構和資料。
說明: 在執行指令前,請修改一下三個參數。
資料庫連接配接位址參見叢集詳情頁面下方連結位址闆塊。
test_user為步驟二中建立的資料庫賬号。
Password1213步驟二中建立的資料庫密碼。
sql_file="/var/www/html/static/backup/sql/"$(ls /var/www/html/static/backup/sql/) &&
mysql -h資料庫連接配接位址 -utest_user -pPassword1213 -Dpbootcms < $sql_file
5. 執行以下指令,修改CMS系統資料庫配置。
說明: 在執行指令前,請根據參數說明替換您的資料庫配置。
cat > /var/www/html/config/database.php << EOF
<?php
return array(
'database' => array(
'type' => 'mysqli', // 資料庫連接配接驅動類型: mysqli,sqlite,pdo_mysql,pdo_sqlite
'host' => '資料庫連接配接位址', // PolarDB資料庫連結位址
'user' => 'test_user', // PolarDB資料庫的使用者名
'passwd' => 'Password1213', // PolarDB資料庫的密碼
'port' => '3306', // 資料庫端口
'dbname' => 'pbootcms' //資料庫名稱
)
);
EOF
6. 傳回ECS控制台,在ECS執行個體清單頁面,單擊已建立的ECS執行個體ID連結進入ECS詳情頁。
7. 在左側導航欄,單擊 本執行個體安全組 ,然後單擊安全組的ID連結檢視安全組配置。
確定安全組開放了80端口通路,否則無法通路已搭建的門戶網站。安全組是一種虛拟防火牆,具備狀态檢測和資料包過濾能力,用于在雲端劃分安全域。通過配置安全組規則,您可以控制安全組内一台或多台ECS執行個體的入流量和出流量。
8. 通路程式。
執行以下指令重新開機 Apache服務。
systemctl restart httpd
在浏覽器位址欄輸入雲伺服器的公網IP位址,進入門戶網站首頁。
系統背景預設通路路徑為http://<ECS公網IP位址>/admin.php。預設賬号為admin,密碼為123456。
至此您已完成門戶網站的搭建,您可以根據公司的需求自定義門戶網站的内容。
mysql常用指令
- 使用 creat 指令建立資料庫
CREATE DATABASE 資料庫名;
如果資料庫不存在則建立,存在則不建立。--- IF NOT EXISTS
建立資料庫,并設定編碼集為utf8 --- CHARSET utf8 COLLATE utf8_general_ci
CREATE DATABASE IF NOT EXISTS 資料庫名 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
- 删除 文法
DROP DATABASE 資料庫名;
- 建立資料表
CREATE TABLE table_name (column_name column_type);
- 删除資料表
DROP TABLE table_name ;
- 插入資料
INSERT INTO table_name ( field1, field2,...fieldN )VALUES( value1, value2,...valueN );
- 查詢資料
SELECT column_name,column_name FROM table_name
SELECT * FROM table_name
WHERE 文法 子句
可以在 WHERE 子句中指定任何條件。
可以使用 AND 或者 OR 指定一個或多個條件。
WHERE 子句也可以運用于 SQL 的 DELETE 或者 UPDATE 指令。
WHERE 子句類似于程式語言中的 if 條件,根據 MySQL 表中的字段值來讀取指定的資料。
如果給定的條件在表中沒有任何比對的記錄,那麼查詢不會傳回任何資料。
SELECT field1 FROM table_name1 WHERE `id`>5
- ORDER BY 文法 子句
使用任何字段來作為排序的條件,進而傳回排序後的查詢結果。
設定多個字段來排序。
使用 ASC 或 DESC 關鍵字來設定查詢結果是按升序或降序排列。 預設情況下,它是按升序排列。
-- ASC 升序
-- DESC 降序
SELECT field table_name ORDER BY `id` ASC
- LIMIT 文法 子句
表示分頁顯示 指定開始位置和顯示條數
SELECT * FROM `table_name` WHERE `id` LIMIT 0,5;