MySQL InnoDB 集群配置实例

发布于 2023-02-13 13:01:33 字数 5123 浏览 44 评论 0

基础配置

初始化实例后,在对应目录下编写配置文件

提示:请关注下章节 高并发语句导致备机宕机 列出的配置优化部分,避免线上高并发导致宕机。

data/s1 目录下,创建文件 my.cnf,配置如下:

[mysqld]
# server configuration
datadir=/home/mysql/data/s1
basedir=/home/mysql/mysql-5.7/
report_host=ic-1
port=24801
socket=/home/mysql/data/s1/mysql.sock

data/s2 目录下,创建文件 my.cnf,配置如下:

[mysqld]
# server configuration
datadir=/home/mysql/data/s2
basedir=/home/mysql/mysql-5.7/
report_host=ic-2
port=24802
socket=/home/mysql/data/s2/mysql.sock

在 data/s3 目录下,创建文件 my.cnf,配置如下:

[mysqld]
# server configuration
datadir=/home/mysql/data/s3
basedir=/home/mysql/mysql-5.7/
report_host=ic-3
port=24803
socket=/home/mysql/data/s3/mysql.sock

/home/mysql 目录下,可以使用如下命令启动数据库实例:

mysqld --defaults-file=data/s1/my.cnf --user=root

为了方便,我们使用启动脚本来启动,在数据库目录 data/s1 下新增脚本 start.shshutdown.sh。直接执行对应脚本即可。注:start.sh 脚本里务必设置主机名,防止重启机器后,主机名改变导致集群无法使用!

start.sh脚本:

#!/bin/sh
#设置机器主机名为localhost
hostname localhost
dir=$(cd $(dirname $0); pwd)
mysqladmin shutdown -S ${dir}/mysql.sock
mysqld --defaults-file=${dir}/my.cnf --user=root >>${dir}/mysqld.log 2>&1 &
tail -f ${dir}/mysqld.log

shutdown.sh脚本:

#!/bin/sh
dir=$(cd $(dirname $0); pwd)
mysqladmin shutdown -S ${dir}/mysql.sock

启动完成后,使用 mysqlShell 登录数据库:

mysqlsh --log-level=DEBUG3
dba.verbose=2

或者直接使用命令:

mysqlsh

建议使用第一种方式,操作时会显示详细日志数据,方便调试。使用命令 shell.connect('root@localhost:24801') 登录数据库,这里 root 用户在本机使用时,没有密码。命令 dba.help() 可以查询集群操作指令的帮助信息。

集群环境配置

在使用数据库实例搭建集群前,需要检查实例是否满足集群配置。需要使用命令 dba.checkInstanceConfiguration() 检查。这里执行 dba.checkInstanceConfiguration('root@localhost:24801') 命令,返回结果如下:

mysql-js> dba.checkInstanceConfiguration('root@localhost:24801')
Please provide the password for 'root@localhost:24801':
Validating instance...
The instance 'localhost:24801' is not valid for Cluster usage.
The following issues were encountered:
- Some configuration options need to be fixed.
+----------------------------------+---------------+----------------+--------------------------------------------------+
| Variable | Current Value | Required Value | Note |
+----------------------------------+---------------+----------------+--------------------------------------------------+
| binlog_checksum | CRC32 | NONE | Update the server variable or restart the
server |
| enforce_gtid_consistency | OFF | ON | Restart the server |
| gtid_mode | OFF | ON | Restart the server |
| log_bin | 0 | 1 | Restart the server |
| log_slave_updates | 0 | ON | Restart the server |
| master_info_repository | FILE | TABLE | Restart the server |
| relay_log_info_repository | FILE | TABLE | Restart the server |
| transaction_write_set_extraction | OFF | XXHASH64 | Restart the server |
+----------------------------------+---------------+----------------+--------------------------------------------------+
Please fix these issues, restart the server and try again.
{
"config_errors": [
{
"action": "server_update",
"current": "CRC32",
"option": "binlog_checksum",
"required": "NONE"
},
{
"action": "restart",
"current": "OFF",
"option": "enforce_gtid_consistency",
"required": "ON"
},
{
"action": "restart",
"current": "OFF",
"option": "gtid_mode",
"required": "ON"
},
{
"action": "restart",
"current": "0",
"option": "log_bin",
"required": "1"
},
{
"action": "restart",
"current": "0",
"option": "log_slave_updates",
"required": "ON"
},
{
"action": "restart",
"current": "FILE",
"option": "master_info_repository",
"required": "TABLE"
},
{
"action": "restart",
"current": "FILE",
"option": "relay_log_info_repository",
"required": "TABLE"
},
{
"action": "restart",
"current": "OFF",
"option": "transaction_write_set_extraction",
"required": "XXHASH64"
}
],
"errors": [],
"restart_required": true,
"status": "error"
}

可以看到当前实例不满足条件,AdminAPI 提供了命令 dba.configureLocalInstance() 来帮助修改实例的配置文件,确保实例可以满足集群的条件。虽然可以手动修改配置文件,但是强烈建议使用 AdminAPI 来操作,避免配置出错。配置完成后,必须重启数据库实例确保配置生效。

使用 dba.configureLocalInstance() 会校验对应用户是否有合适的访问权限,root 用户默认不允许其它服务器登录,这里有3个选项供选择。我们选择第一个,为 root 用户授权所需权限。

执行命令如下图,注意 mysql 的配置路径务必指定正确,注意这里设置了 root 用户的非本机访问所用密码。同样的方式,将实例2、实例3也按照同样的方式配置。确保三个数据库实例都满足集群要求。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

天赋异禀

暂无简介

0 文章
0 评论
24 人气
更多

推荐作者

小瓶盖

文章 0 评论 0

wxsp_Ukbq8xGR

文章 0 评论 0

1638627670

文章 0 评论 0

仅一夜美梦

文章 0 评论 0

夜访吸血鬼

文章 0 评论 0

近卫軍团

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文