在Linux系统管理中,你是否曾经遇到过数据库安装困难、性能优化复杂、或者数据备份繁琐的问题? 数据库服务器部署是系统管理的重要技能,掌握这些技能不仅能保证数据安全,还能提高数据库性能。 本文将详细介绍数据库服务器部署的核心技术和配置技巧。
目录
1. MySQL部署配置
1.1 安装与基础配置
安装MySQL:
# Ubuntu/Debian系统sudo apt updatesudo apt install mysql-server# CentOS/RHEL系统sudo yum install mysql-server# 启动服务sudo systemctl start mysqlsudo systemctl enable mysql
安全配置:
# 运行安全脚本sudo mysql_secure_installation# 设置root密码sudo mysql -e "ALTER USER 'root'@'localhost' IDENTIFIED BY 'StrongPassword123!'"# 删除匿名用户sudo mysql -e "DELETE FROM mysql.user WHERE User='';"# 禁止root远程登录sudo mysql -e "DELETE FROM mysql.user WHERE User='root' AND Host NOT IN ('localhost', '127.0.0.1', '::1');"# 删除测试数据库sudo mysql -e "DROP DATABASE IF EXISTS test;"
1.2 基础配置
配置文件优化:
# 编辑配置文件sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf# 设置基础参数[mysqld]bind-address = 127.0.0.1port = 3306socket = /var/run/mysqld/mysqld.sock# 设置内存参数innodb_buffer_pool_size = 1Ginnodb_log_file_size = 256Minnodb_flush_log_at_trx_commit = 2
创建数据库:
# 创建数据库sudo mysql -e "CREATE DATABASE myapp CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"# 创建用户sudo mysql -e "CREATE USER 'myapp'@'localhost' IDENTIFIED BY 'AppPassword123!';"# 授权sudo mysql -e "GRANT ALL PRIVILEGES ON myapp.* TO 'myapp'@'localhost';"# 刷新权限sudo mysql -e "FLUSH PRIVILEGES;"
1.3 备份与恢复
备份配置:
# 创建备份脚本sudo nano /backup/mysql_backup.sh#!/bin/bashDATE=$(date +%Y%m%d_%H%M%S)mysqldump -u root -p'RootPassword123!' --all-databases > /backup/mysql_backup_$DATE.sqlgzip /backup/mysql_backup_$DATE.sql
设置定时任务:
# 添加定时任务sudo crontab -e# 添加:0 2 * * * /backup/mysql_backup.sh
恢复数据:
# 解压备份文件gunzip mysql_backup_20240308_020000.sql.gz# 恢复数据mysql -u root -p'RootPassword123!' < mysql_backup_20240308_020000.sql
2. PostgreSQL部署配置
2.1 安装与基础配置
安装PostgreSQL:
# Ubuntu/Debian系统sudo apt updatesudo apt install postgresql postgresql-contrib# CentOS/RHEL系统sudo yum install postgresql-server postgresql-contrib# 初始化数据库sudo postgresql-setup initdb# 启动服务sudo systemctl start postgresqlsudo systemctl enable postgresql
基础配置:
# 切换到postgres用户sudo -u postgres psql# 创建用户CREATE USER myapp WITH PASSWORD 'AppPassword123!';# 创建数据库CREATE DATABASE myapp OWNER myapp;# 授权GRANT ALL PRIVILEGES ON DATABASE myapp TO myapp;# 退出\q
2.2 配置文件优化
编辑配置文件:
# 编辑主配置文件sudo nano /etc/postgresql/13/main/postgresql.conf# 设置基础参数listen_addresses = 'localhost'port = 5432max_connections = 200# 设置内存参数shared_buffers = 256MBeffective_cache_size = 1GBmaintenance_work_mem = 64MB
编辑pg_hba.conf:
# 编辑客户端认证配置sudo nano /etc/postgresql/13/main/pg_hba.conf# 添加配置local all all md5host all all 127.0.0.1/32 md5host all all ::1/128 md5
重启服务:
sudo systemctl restart postgresql
2.3 备份与恢复
备份配置:
# 创建备份脚本sudo nano /backup/postgresql_backup.sh#!/bin/bashDATE=$(date +%Y%m%d_%H%M%S)pg_dump -U myapp myapp > /backup/postgresql_backup_$DATE.sqlgzip /backup/postgresql_backup_$DATE.sql
恢复数据:
# 解压备份文件gunzip postgresql_backup_20240308_020000.sql.gz# 恢复数据psql -U myapp myapp < postgresql_backup_20240308_020000.sql
3. Redis部署配置
3.1 安装与基础配置
安装Redis:
# Ubuntu/Debian系统sudo apt updatesudo apt install redis-server# CentOS/RHEL系统sudo yum install redis# 启动服务sudo systemctl start redissudo systemctl enable redis
基础配置:
# 编辑配置文件sudo nano /etc/redis/redis.conf# 设置基础参数port 6379bind 127.0.0.1daemonize yes# 设置内存参数maxmemory 2gbmaxmemory-policy allkeys-lru# 设置持久化save 900 1save 300 10save 60 10000
3.2 安全配置
密码保护:
# 设置密码requirepass StrongRedisPassword123!# 禁用危险命令rename-command FLUSHDB ""rename-command FLUSHALL ""rename-command DEBUG ""
网络配置:
# 绑定特定IPbind 127.0.0.1# 设置端口port 6379# 禁用protected模式protected-mode yes
3.3 性能优化
内存优化:
# 设置最大内存maxmemory 2gb# 设置内存策略maxmemory-policy allkeys-lru# 设置过期时间maxmemory-samples 5
持久化配置:
# 设置RDB持久化save 900 1save 300 10save 60 10000# 设置AOF持久化appendonly yesappendfsync everysecauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb
3.4 监控与维护
监控命令:
# 查看信息redis-cli info# 查看内存使用redis-cli info memory# 查看连接数redis-cli info clients# 查看键值对数量redis-cli dbsize
性能测试:
# 性能测试redis-cli --latency -t 100# 内存测试redis-cli --bigkeys# 连接测试redis-cli --test-memory 4096
总结
数据库服务器部署是系统管理的重要技能,掌握这些技能不仅能保证数据安全,还能提高数据库性能。
关键要点回顾:
- 1. MySQL部署:安装配置、安全配置、备份恢复
- 2. PostgreSQL部署:安装配置、配置优化、备份恢复
- 3. Redis部署:安装配置、安全配置、性能优化