|
在Linux系统上部署数据库并搭建运行环境是开发者与运维人员的常见需求,无论是MySQL、PostgreSQL还是MongoDB,核心流程均包含环境准备、安装、配置、安全加固及性能优化等步骤。以下以MySQL为例,详细说明全流程操作。
一、系统环境准备 1. 系统版本选择:推荐使用CentOS 7+/Ubuntu 20.04 LTS等长期支持版本,确保内核版本≥3.10以支持现代数据库特性。 2. 依赖包安装:通过包管理器安装基础工具,如`yum install -y wget curl vim net-tools`(CentOS)或`apt install -y wget curl vim net-tools`(Ubuntu)。 3. 资源检查:使用`free -h`确认内存≥4GB,`df -h`检查磁盘空间≥50GB,并确保有独立分区存放数据库数据文件。 4. 防火墙配置:开放数据库端口(如MySQL默认3306),示例命令: `firewall-cmd --zone=public --add-port=3306/tcp --permanent \u0026\u0026 firewall-cmd --reload`(CentOS) 或`ufw allow 3306/tcp`(Ubuntu)。
二、数据库安装 1. 官方仓库添加: - CentOS:下载MySQL官方YUM仓库文件并安装: `wget https://dev.mysql.com/get/mysql80-community-release-el7-6.noarch.rpm \u0026\u0026 rpm -ivh mysql80-community-release-el7-6.noarch.rpm` - Ubuntu:使用`apt-key`添加GPG密钥并配置APT源: `wget https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 \u0026\u0026 apt-key add RPM-GPG-KEY-mysql-2022` 2. 安装数据库服务: 执行`yum install -y mysql-community-server`(CentOS)或`apt install -y mysql-server`(Ubuntu),安装完成后启动服务: `systemctl start mysqld`(CentOS)或`systemctl start mysql`(Ubuntu)。 3. 获取初始密码: MySQL 8.0+首次启动会生成临时密码,通过`grep 'temporary password' /var/log/mysqld.log`(CentOS)或`sudo grep 'temporary password' /var/log/mysql/error.log`(Ubuntu)查看,后续登录时需使用此密码。
三、安全配置与初始化 1. 运行安全脚本: 执行`mysql_secure_installation`,按提示完成以下操作: - 修改root密码(建议使用强密码,包含大小写字母、数字及特殊字符) - 移除匿名用户 - 禁止root远程登录 - 删除测试数据库 - 刷新权限表 2. 创建专用用户: 登录MySQL后执行: `CREATE USER 'app_user'@'%' IDENTIFIED BY 'ComplexPass123!';` `GRANT SELECT,INSERT,UPDATE,DELETE ON app_db. TO 'app_user'@'%';` `FLUSH PRIVILEGES;` 3. 配置字符集: 编辑`/etc/my.cnf`(CentOS)或`/etc/mysql/mysql.conf.d/mysqld.cnf`(Ubuntu),在`[mysqld]`段添加: `character-set-server=utf8mb4` `collation-server=utf8mb4_unicode_ci` 重启服务使配置生效:`systemctl restart mysqld`。
四、性能优化与监控 1. 内存参数调整: 根据服务器内存修改`innodb_buffer_pool_size`(通常设为物理内存的50%-70%),例如在配置文件中添加: `innodb_buffer_pool_size=4G` 2. 慢查询日志: 启用慢查询记录以优化SQL性能: `slow_query_log=1` `slow_query_log_file=/var/log/mysql/mysql-slow.log` `long_query_time=2` 3. 监控工具部署: 安装Prometheus Node Exporter监控系统资源,或使用Percona PMM(Percona Monitoring and Management)进行数据库专项监控,通过`wget https://downloads.percona.com/downloads/PMM2/PMM-Server-2.x/latest/docker-compose.yml`快速部署容器化监控服务。
五、备份与恢复策略 1. 逻辑备份: 使用`mysqldump`定期备份: `mysqldump -u root -p --single-transaction --routines --triggers app_db > app_db_backup_$(date +%Y%m%d).sql` 2. 物理备份: 对于InnoDB引擎,推荐使用Percona XtraBackup: `yum install -y percona-xtrabackup-80`(CentOS) `xtrabackup --backup --user=root --password --target-dir=/backups/full_backup` 3. 自动化脚本: 编写Shell脚本结合crontab实现定时备份,例如每日凌晨3点执行全量备份: `0 3 /usr/bin/mysqldump -u root -p'password' app_db > /backups/app_db_$(date +\\%Y\\%m\\%d).sql` 确保脚本权限为600且存储在安全目录。 (编辑:站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|