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

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

MySQL

适用环境:RHEL/OEL7 Linux

1. 硬件及系统要求

1.1 硬件要求

  • CPU: 至少4核
  • 内存: 至少8GB
  • 磁盘: 至少200GB SSD
  • 网络: 千兆网卡,低延迟网络环境

1.2 系统要求

  • 操作系统: RHEL/OEL 7.x
  • 内核版本: 3.10.0-1160.el7.x86_64或更高
  • 文件系统: ext4或xfs
  • 关闭SELinux或设置为permissive模式
  • 关闭防火墙或开放必要端口

2. 环境准备

2.1 系统更新

yum update -y

2.2 安装必要依赖

yum install -y wget curl telnet net-tools perl

2.3 关闭防火墙和SELinux

systemctl stop firewalld
systemctl disable firewalld

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config

2.4 配置主机名和hosts文件

# 主服务器
echo "mysql-master" > /etc/hostname
hostnamectl set-hostname mysql-master

# 从服务器
echo "mysql-slave" > /etc/hostname
hostnamectl set-hostname mysql-slave

# 在两台服务器上都添加hosts条目
cat >> /etc/hosts << EOF
192.168.1.100 mysql-master
192.168.1.101 mysql-slave
EOF

3. 主服务器MySQL安装

3.1 下载MySQL 5.7 RPM包

cd /tmp
wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

3.2 安装MySQL仓库

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

3.3 安装MySQL 5.7

yum install -y mysql-community-server

3.4 启动MySQL服务

systemctl start mysqld
systemctl enable mysqld

3.5 获取初始密码

grep 'temporary password' /var/log/mysqld.log

3.6 安全配置MySQL

mysql_secure_installation
提示:按照提示设置新密码,移除匿名用户,禁用远程root登录,移除test数据库,重新加载权限表。

4. 从服务器MySQL安装

按照与主服务器相同的步骤在从服务器上安装MySQL 5.7。

更多学习教程公众号风哥教程itpux_com 风哥提示:数据库升级过程中请确保备份完整数据,以防意外情况发生。

5. 主服务器配置

5.1 编辑MySQL配置文件

vi /etc/my.cnf

5.2 添加主服务器配置

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# 主服务器配置
server-id=1
log-bin=mysql-bin
binlog-format=ROW
expire_logs_days=7
max_binlog_size=100M

# 跳过复制错误(生产环境不推荐)
# slave-skip-errors=all

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

5.3 重启MySQL服务

systemctl restart mysqld

5.4 创建复制用户

mysql -u root -p

CREATE USER 'repl'@'192.168.1.101' IDENTIFIED BY 'Repl123!@#';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.101';
FLUSH PRIVILEGES;

SHOW MASTER STATUS;
提示:记录下显示的File和Position值,后续配置从服务器时需要使用。

6. 从服务器配置

6.1 编辑MySQL配置文件

vi /etc/my.cnf

6.2 添加从服务器配置

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

# 从服务器配置
server-id=2
relay-log=mysql-relay-bin
read-only=1

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

6.3 重启MySQL服务

systemctl restart mysqld

7. 主从复制配置

7.1 配置从服务器连接主服务器

mysql -u root -p

CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl',
MASTER_PASSWORD='Repl123!@#',
MASTER_LOG_FILE='mysql-bin.000001',  # 替换为实际的File值
MASTER_LOG_POS=154;  # 替换为实际的Position值

START SLAVE;

8. 复制验证

8.1 检查从服务器状态

mysql -u root -p

SHOW SLAVE STATUS\G;
提示:确保Slave_IO_Running和Slave_SQL_Running都为Yes。

8.2 测试复制

# 在主服务器上创建测试数据库
mysql -u root -p
CREATE DATABASE test_replication;
USE test_replication;
CREATE TABLE test_table (id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Test 1'), ('Test 2'), ('Test 3');

# 在从服务器上验证数据
mysql -u root -p
SHOW DATABASES;
USE test_replication;
SELECT * FROM test_table;

9. 性能优化

9.1 操作系统参数优化

vi /etc/sysctl.conf
# 网络参数
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_tw_reuse = 1

# 文件系统参数
fs.file-max = 65535

# 内存参数
vm.swappiness = 10
vm.overcommit_memory = 1
sysctl -p

9.2 MySQL参数优化

vi /etc/my.cnf
[mysqld]
# 基础参数
max_connections = 1000
max_connect_errors = 10000

# 缓存参数
key_buffer_size = 256M
innodb_buffer_pool_size = 4G
innodb_log_buffer_size = 16M

# 查询参数
query_cache_size = 64M
query_cache_type = 1

# 复制参数
sync_binlog = 1
innodb_flush_log_at_trx_commit = 1
systemctl restart mysqld

10. 故障排查

10.1 常见问题及解决方法

10.1.1 从服务器复制停止

# 检查错误信息
SHOW SLAVE STATUS\G;

# 跳过错误(生产环境谨慎使用)
STOP SLAVE;
SET GLOBAL sql_slave_skip_counter = 1;
START SLAVE;

10.1.2 主从数据不一致

# 在主服务器上创建备份
mysqldump --all-databases --master-data=2 > master_backup.sql

# 在从服务器上恢复
STOP SLAVE;
mysql -u root -p < master_backup.sql

# 重新配置复制
CHANGE MASTER TO
MASTER_HOST='192.168.1.100',
MASTER_USER='repl',
MASTER_PASSWORD='Repl123!@#',
MASTER_LOG_FILE='mysql-bin.000001',  # 从备份文件中获取
MASTER_LOG_POS=154;  # 从备份文件中获取

START SLAVE;

10.1.3 网络连接问题

# 测试网络连接
telnet mysql-master 3306

# 检查防火墙设置
iptables -L

# 检查MySQL监听地址
netstat -tuln | grep 3306
警告:本指南仅供参考,实际部署时请根据具体环境进行调整。在生产环境中,建议使用更复杂的高可用方案,如MHA或InnoDB Cluster。

提示:定期监控主从复制状态,确保数据一致性和复制延迟在可接受范围内。

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

联系我们

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

微信号:itpux-com

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