跳到主要内容

Galera提供了一个高性能的MariaDB数据库解决方案,通过同步复制来实现高可用性。Galera部署了MariaDB,这是一个开源的数据库管理系统,使用关系型数据库和SQL(结构化查询语言)来管理其数据。MariaDB最初是基于MySQL的,并保持向后兼容。

LinodeMarketplace 允许您使用云管理器在计算实例上轻松部署应用程序集群。有关完整步骤,请参阅 Marketplace Apps 入门

本Marketplace 应用程序部署 3 个计算实例,以创建高可用性和冗余的 MeriaDB Galera 集群,每个实例的计划类型和规模由您选择。请注意,每个计算实例都将作为单独的项目出现在您的发票上。若要在单个计算实例上部署 MariaDB,请参阅通过 LinodeMarketplace 部署 MySQL/MariaDB

  1. 登录云管理器并从左侧导航菜单中选择 Marketplace链接。这将显示 Linode创建页面,并预选 Marketplace选项卡。
  2. 在 "选择应用程序"部分下,选择要部署的群集应用程序。Marketplace 作为群集部署的应用程序名称旁边会有一个群集标签。
  3. 按照创建计算实例指南中的步骤和建议填写表格。根据您选择的Marketplace App,可能会有其他可用的配置选项。请参阅下面的 "配置选项"部分,了解该Marketplace App 的兼容发行版、推荐计划和任何其他可用配置选项。
  4. 点击 "创建Linode"按钮。一旦第一个计算实例被配置并完全开机,请等待软件安装完成。如果在这之前关闭实例的电源或重新启动,其他计算实例可能永远不会被部署,软件安装可能会失败。

要验证应用程序是否已完全安装,请参阅开始使用Marketplace 应用程序 > 验证安装。安装完成后,请按照 "部署后入门"部分的说明访问应用程序并开始使用。

预计部署时间: Galera集群应在第一个计算实例完成配置后5-10分钟内完成部署和配置。

配置选项

  • 支持的发行版: Ubuntu 22.04 LTS
  • 推荐计划:取决于你的MySQL数据库的大小和你预期的流量。

加莱拉选项

  • 集群名称 (必填):输入你希望用于该集群部署的名称。
  • Linode API 令牌 (必填):您的 API 令牌用于部署额外的计算实例作为此群集的一部分。此令牌至少必须具有对Linode 的读/写访问权限。如果您还没有 API 令牌,请参阅 "获取 API 访问令牌"创建一个。
  • 向所有节点添加 SSH 密钥 (需要):如果你选择 "是",任何添加到根用户账户的SSH密钥(在SSH密钥部分),也会被添加到所有部署的计算实例上的有限用户账户。
  • Galera集群大小:这个字段不能编辑,但用来告知你作为这个集群的一部分而创建的计算实例的数量。

TLS/SSL证书选项

在创建你的自签名TLS/SSL证书时,会用到以下字段(除了上面的域名字段)。

  • 国家或地区 (必填):输入你或你的组织的国家或地区。
  • 州或省 (必填):输入你或你的组织的州或省。
  • 地点 (必填):输入你或你的组织的城镇或其他地方。
  • 组织 (必填):输入你的组织的名称。
  • 电子邮件地址 (必填):输入你希望为你的证书文件使用的电子邮件地址。这个电子邮件地址可能会收到关于你的证书状态的通知,包括证书过期的情况。
  • CA通用名称:这是自签名证书颁发机构的通用名称。
  • 通用名称:这是该域名使用的通用名称。

警告:不要在任何App特定的配置字段中使用双引号字符("),包括用户和数据库密码字段。这个特殊字符可能会在部署过程中造成问题。

部署后开始工作

与MariaDB互动的标准工具是 mysql 客户端,它与 mysql-server 包。MariaDB客户端是通过终端使用的。

根部登录

  1. 要以根用户身份登录到MySQL。

    sudo mysql -u root -p
  2. 出现提示时,输入启动Marketplace App 时设置的 MySQL 根密码。然后会出现欢迎页眉和 MySQL 提示,如下图所示:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear command.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter. NOTE: Takes the rest of the line as new delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

For server side help, type 'help contents'

MariaDB [(none)]>

3.要为MySQL提示符生成一个命令列表,请输入 \h.然后你会看到。

MariaDB [(none)]>

4.授予访问数据库的权限,该数据库是在启动Marketplace App 时创建的。 MySQL用户.在这个例子中,数据库被称为 webdata,用户 webuser,而用户的密码是 password.请务必输入你自己的密码。这应该与MySQL的根密码不同。

GRANT ALL ON webdata.* TO 'webuser' IDENTIFIED BY 'password';

5.要退出MySQL/MariaDB,请输入。

exit

创建一个样本表

  1. 重新登录为 MySQL用户 在启动Marketplace 应用程序时设置的。在下面的示例中 MySQL用户 是 webuser.

    sudo mysql -u webuser -p
  2. 创建一个名为 customers.这将创建一个具有客户ID字段的表,类型为 INT 为整数(新记录自动递增,作为主键使用),以及两个字段用于存储客户的名字。在下面的例子中 webdata 是您在启动Marketplace App 时创建的数据库。
use webdata;
create table customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);

3.要查看你创建的表的内容。
describe customers;

产出:

+-------------+---------+------+-----+---------+----------------+
| Field       | Type    | Null | Key | Default | Extra          |
+-------------+---------+------+-----+---------+----------------+
| customer_id | int(11) | NO   | PRI | NULL    | auto_increment |
| first_name  | text    | YES  |     | NULL    |                |
| last_name   | text    | YES  |     | NULL    |                |
+-------------+---------+------+-----+---------+----------------+

4.然后退出MySQL/MariaDB。
exit

关于MySQL/MariaDB的更多信息,请查看以下指南:

Galera ClusterMarketplace 应用程序由 Linode 为 Linode 构建。有关应用程序部署的支持,请联系Linode 支持。有关工具或软件本身的支持,请 浏览Galera 文档