1. 首页 > 软件安装教程 > 正文

MySQL安装-MySQL数据库安装详细过程

1. 环境准备

在安装MySQL 5.7 MHA集群之前,需要进行以下环境准备:更多学习教程www.fgedu.net.cn

学习交流加群风哥微信: itpux-com

硬件建议:
– 主节点:至少4核CPU,8GB内存,100GB磁盘
– 从节点:至少4核CPU,8GB内存,100GB磁盘
– MHA管理节点:至少2核CPU,4GB内存,50GB磁盘
– 网络:千兆网络接口,推荐万兆

# 服务器规划
# 主节点:192.168.1.101
# 从节点1:192.168.1.102
# 从节点2:192.168.1.103
# MHA管理节点:192.168.1.104

# 所有节点安装必要的依赖
yum install -y perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes

# 所有节点配置hosts文件
vi /etc/hosts
192.168.1.101 master
192.168.1.102 slave1
192.168.1.103 slave2
192.168.1.104 mha-manager

# 配置SSH免密登录
# 在MHA管理节点生成密钥
ssh-keygen -t rsa

# 将公钥复制到所有节点
ssh-copy-id root@master
ssh-copy-id root@slave1
ssh-copy-id root@slave2

2. MySQL 5.7安装

在所有MySQL节点上安装MySQL 5.7:

风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。

# 下载MySQL 5.7
tar -zxvf mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar

# 安装MySQL 5.7
rpm -ivh mysql-community-common-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.36-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.36-1.el7.x86_64.rpm

# 初始化MySQL
mysqld –initialize –user=mysql

# 启动MySQL服务
systemctl start mysqld
systemctl enable mysqld

# 查看临时密码
grep ‘temporary password’ /var/log/mysqld.log

# 重置root密码
mysql -u root -p
ALTER USER ‘root’@’localhost’ IDENTIFIED BY ‘fgedudb123’;

3. 主从复制配置

配置MySQL主从复制:

# 主节点配置
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
port=3306
socket=/var/lib/mysql/mysql.sock
server_id=101
log-bin=mysql-bin
binlog_format=ROW
expire_logs_days=7

# 重启主节点
systemctl restart mysqld

# 创建复制用户
mysql -u root -p
CREATE USER ‘repl’@’%’ IDENTIFIED BY ‘repl123’;
GRANT REPLICATION SLAVE ON *.* TO ‘repl’@’%’;
FLUSH PRIVILEGES;

# 查看主节点状态
SHOW MASTER STATUS;

# 从节点1配置
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
port=3306
socket=/var/lib/mysql/mysql.sock
server_id=102
relay-log=relay-bin
read-only=1

# 重启从节点1
systemctl restart mysqld

# 配置从节点1复制
mysql -u root -p
CHANGE MASTER TO MASTER_HOST=’192.168.1.101′, MASTER_USER=’repl’, MASTER_PASSWORD=’repl123′, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G;

# 从节点2配置
vi /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql
datadir=/var/lib/mysql
port=3306
socket=/var/lib/mysql/mysql.sock
server_id=103
relay-log=relay-bin
read-only=1

# 重启从节点2
systemctl restart mysqld

# 配置从节点2复制
mysql -u root -p
CHANGE MASTER TO MASTER_HOST=’192.168.1.101′, MASTER_USER=’repl’, MASTER_PASSWORD=’repl123′, MASTER_LOG_FILE=’mysql-bin.000001′, MASTER_LOG_POS=154;
START SLAVE;
SHOW SLAVE STATUS\G;

4. MHA安装

在MHA管理节点和所有MySQL节点上安装MHA:

from:www.itpux.com

# 下载MHA
wget https://github.com/yoshinorim/mha4mysql-manager/releases/download/v0.58/mha4mysql-manager-0.58.tar.gz
wget https://github.com/yoshinorim/mha4mysql-node/releases/download/v0.58/mha4mysql-node-0.58.tar.gz

# 所有节点安装MHA节点包
tar -zxvf mha4mysql-node-0.58.tar.gz
cd mha4mysql-node-0.58
perl Makefile.PL
make
make install

# MHA管理节点安装MHA管理包
tar -zxvf mha4mysql-manager-0.58.tar.gz
cd mha4mysql-manager-0.58
perl Makefile.PL
make
make install

5. MHA配置

在MHA管理节点上配置MHA:

更多视频教程www.fgedu.net.cn 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。

# 创建MHA配置目录
mkdir -p /etc/mha/mysql_cluster

# 创建MHA配置文件
vi /etc/mha/mysql_cluster.cnf
[server default]
manager_workdir=/var/log/mha/mysql_cluster
manager_log=/var/log/mha/mysql_cluster/manager.log
master_binlog_dir=/var/lib/mysql
user=root
password=fgedudb123
ping_interval=1
remote_workdir=/tmp
repl_user=repl
repl_password=repl123
ssh_user=root

[server1]
host=192.168.1.101
port=3306

[server2]
host=192.168.1.102
port=3306
candidate_master=1

[server3]
host=192.168.1.103
port=3306
candidate_master=1

6. MHA测试

测试MHA配置:

from:www.itpux.com 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。 学习交流加群风哥微信: itpux-com

# 测试SSH连接
masterha_check_ssh –conf=/etc/mha/mysql_cluster.cnf

# 测试主从复制
masterha_check_repl –conf=/etc/mha/mysql_cluster.cnf

7. MHA监控

启动MHA监控:

from:www.itpux.com

# 启动MHA监控
nohup masterha_manager –conf=/etc/mha/mysql_cluster.cnf –remove_dead_master_conf –ignore_last_failover < /dev/null > /var/log/mha/mysql_cluster/manager.log 2>&1 &

# 查看MHA状态
masterha_check_status –conf=/etc/mha/mysql_cluster.cnf

8. 故障转移测试

测试MHA故障转移:

更多学习教程公众号风哥教程itpux_com 学习交流加群风哥微信: itpux-com 学习交流加群风哥微信: itpux-com

# 手动触发故障转移
masterha_master_switch –conf=/etc/mha/mysql_cluster.cnf –master_state=dead –new_master_host=192.168.1.102 –new_master_port=3306 –orig_master_is_new_slave –running_updates_limit=10000

# 检查新主节点状态
mysql -h 192.168.1.102 -u root -p
SHOW MASTER STATUS;

# 检查其他从节点状态
mysql -h 192.168.1.103 -u root -p
SHOW SLAVE STATUS\G;

9. 性能调优

MySQL 5.7 MHA集群的性能调优:

更多视频教程www.fgedu.net.cn

性能调优建议:
– 根据服务器内存大小调整innodb_buffer_pool_size(建议为内存的50-70%)
– 调整innodb_log_file_size以提高写入性能
– 启用innodb_buffer_pool_instances以提高并发性能
– 优化查询语句,添加适当的索引
– 定期优化表结构和分析表
– 调整Linux内核参数以提高性能
– 使用SSD存储以提高I/O性能

10. 备份策略

MySQL 5.7 MHA集群的备份策略:

风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。

# 1. 主节点定期备份
# 创建备份脚本
cat > /root/backup_mysql.sh << EOF #!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR="/backup/mysql" mkdir -p $BACKUP_DIR mysqldump -u root -p"fgedudb123" --all-databases --single-transaction > $BACKUP_DIR/backup_$DATE.sql

gzip $BACKUP_DIR/backup_$DATE.sql

# 删除7天前的备份
find $BACKUP_DIR -name “backup_*.sql.gz” -mtime +7 -delete
EOF

# 赋予执行权限
chmod +x /root/backup_mysql.sh

# 添加到crontab,每天凌晨2点执行
crontab -e
0 2 * * * /root/backup_mysql.sh

# 2. 从节点备份
# 可以在从节点上执行备份,减轻主节点负担

生产环境建议:
– 定期备份数据
– 开启二进制日志用于Point-in-Time Recovery
– 监控MySQL的运行状态
– 定期检查并优化数据库性能
– 定期测试MHA故障转移功能
– 保持MHA和MySQL版本的更新

风哥提示:MHA是一个成熟的MySQL高可用解决方案,能够实现自动故障转移,减少数据库 downtime。在生产环境中,建议定期测试故障转移功能,确保在真正故障发生时能够正常工作。from:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息