Ubuntu上SQLAdmin集群部署指南(基于MySQL数据库集群)
SQLAdmin本质是一个MySQL数据库管理工具,其“集群部署”本质是通过配置MySQL集群(实现高可用、读写分离或分布式处理),再通过SQLAdmin统一管理集群节点。以下是具体步骤:
系统更新与依赖安装
更新Ubuntu系统并安装必要工具:
sudo apt update && sudo apt upgrade -y
sudo apt install -y mysql-server mysql-client keepalived software-properties-common
SQLAdmin安装与基础配置
若需通过SQLAdmin管理集群,先完成SQLAdmin部署(参考官方仓库安装):
wget -qO - https://packages.sqladmin.io/debian/public.key | sudo apt-key add -
echo "deb https://packages.sqladmin.io/debian/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/sqladmin.list
sudo apt update
sudo apt install -y sqladmin
修改SQLAdmin配置文件(/etc/sqladmin/config.yaml),设置监听地址、端口及数据库连接信息(后续需指向集群虚拟IP)。
编辑MySQL配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
server-id = 1 # 唯一服务器ID
log_bin = /var/log/mysql/mysql-bin.log # 开启二进制日志
binlog_do_db = your_database # 需同步的数据库名
auto_increment_increment = 2 # 自增步长(集群节点数)
auto_increment_offset = 1 # 自增起始值(主节点为1)
重启MySQL服务:
sudo systemctl restart mysql
创建复制用户并授权:
登录MySQL,执行以下命令(替换password为强密码):
CREATE USER 'replicator'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'%';
FLUSH PRIVILEGES;
获取主节点二进制日志位置:
SHOW MASTER STATUS;
记录File(如mysql-bin.000001)和Position(如154)值,后续用于从节点配置。
编辑MySQL配置文件(/etc/mysql/mysql.conf.d/mysqld.cnf):
[mysqld]
server-id = 2 # 唯一服务器ID(需与主节点不同)
relay_log = /var/log/mysql/mysql-relay-bin.log # 开启中继日志
log_bin = /var/log/mysql/mysql-bin.log # 开启二进制日志(可选,用于级联复制)
binlog_do_db = your_database # 同主节点
auto_increment_increment = 2 # 同主节点
auto_increment_offset = 2 # 自增起始值(从节点为2)
read_only = 1 # 设置为只读(生产环境建议)
重启MySQL服务:
sudo systemctl restart mysql
配置主从复制:
登录从节点MySQL,执行以下命令(替换主节点IP、复制用户信息及File/Position值):
CHANGE MASTER TO
MASTER_HOST='master_ip',
MASTER_USER='replicator',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=154;
START SLAVE;
验证复制状态:
SHOW SLAVE STATUS\G
确保Slave_IO_Running和Slave_SQL_Running均为Yes,表示复制正常。
安装Keepalived:
sudo apt install -y keepalived
配置Keepalived(主节点):
编辑配置文件(/etc/keepalived/keepalived.conf):
vrrp_instance VI_1 {
state MASTER # 主节点状态
interface eth0 # 网卡名称(通过`ip a`查看)
virtual_router_id 51 # 虚拟路由ID(集群内唯一)
priority 100 # 优先级(主节点高于从节点,如100 vs 90)
advert_int 1 # 心跳间隔(秒)
authentication {
auth_type PASS
auth_pass 42 # 心跳密码
}
virtual_ipaddress {
192.168.1.100 # 虚拟IP(集群访问入口)
}
}
重启Keepalived服务:
sudo systemctl restart keepalived
配置Keepalived(从节点):
将state改为BACKUP,priority改为90(低于主节点),其余配置相同,重启服务。
添加集群连接
登录SQLAdmin Web界面(http://<your_server_ip>:8080),进入“数据库连接”页面,添加新连接:
MySQL_Cluster)MySQLjdbc:mysql://192.168.1.100:3306/your_database(虚拟IP)root)验证连接
点击“测试连接”,若提示成功,则可通过SQLAdmin管理集群节点(如执行SQL、查看节点状态)。
主从复制测试
在主节点插入数据:
USE your_database;
INSERT INTO test_table (name) VALUES ('test');
在从节点查询数据,确认数据同步。
高可用测试
停止主节点MySQL服务,观察虚拟IP是否漂移到从节点,SQLAdmin是否能继续通过虚拟IP访问集群。