背景知识
PolarDB数据库简介
- PolarDB是阿里云自研的下一代关系型云数据库,有三个独立的引擎,分别可以100%兼容MySQL、100%兼容PostgreSQL、高度兼容Oracle语法。
-
PolarDB采用存储和计算分离的架构,所有计算节点共享一份数据,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务。
- 集群架构,计算与存储分离
PolarDB采用多节点集群的架构,集群中有一个Writer节点(主节点)和多个Reader节点(读节点),各节点通过分布式文件系统(PolarFileSystem)共享底层的存储(PolarStore)
- 读写分离
当应用程序使用集群地址时,PolarDB MySQL/PostgreSQL通过内部的代理层(Proxy)对外提供服务,应用程序的请求都先经过代理,然后才访问到数据库节点。代理层不仅可以做安全认证和保护,还可以解析SQL,把写操作(例如事务、UPDATE、INSERT、DELETE、DDL等)发送到主节点,把读操作(例如SELECT)均衡地分发到多个只读节点,实现自动的读写分离。对于应用程序来说,就像使用一个单点的MySQL数据库一样简单。内部的代理层(Proxy)后续将支持PolarDB兼容Oracle语法引擎。
产品优势
- 容量大
- 高性价比
- 分钟级弹性
- 读一致性
- 毫秒级延迟
- 无锁备份
开始实验
创建PolarDB数据库账号
- 登入阿里云管理控制台创建数据库账号,类型为普通账号
- 创建数据库,为新创建的账户授予读写权限,并设置数据库白名单
安装LAMP环境
-
在ECS服务器上,执行以下命令安装Apache服务及其扩展包
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
systemctl start mysqld
搭建门户网站
-
在ECS服务器上,执行以下命令,安装Git。
systemctl restart httpd
-
在ECS服务器上,执行以下命令下载PbootCMS源码文件。
cd ~ && git clone https://gitee.com/hnaoyun/PbootCMS.git
-
执行以下命令将安装包拷贝到Apache的wwwroot目录下。
cp -r PbootCMS/* /var/www/html/
-
执行以下命令修改站点根目录文件权限。
chmod -R a+w /var/www/html
-
向数据库中导入CMS的初始数据。
sql_file="/var/www/html/static/backup/sql/"$(ls /var/www/html/static/backup/sql/) && mysql -h数据库连接地址 -utest_user -pPassword1213 -Dpbootcms < $sql_file
- 数据库连接地址参见集群详情页面下方链接地址板块。
- test_user为步骤二中创建的数据库账号。
- Password1213步骤二中创建的数据库密码。
-
执行以下命令,修改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
- 配置ECS安全组
- 重启 Apache服务,访问程序。