文章目录
MariaDB 5.5.68 重新部署与数据迁移方案
针对您的 MariaDB 5.5.68 版本,我将提供一个完整的重新部署和数据迁移方案。由于这是一个较旧的版本,我们需要特别注意兼容性和迁移方法。
迁移前准备工作
1. 评估当前环境
# 检查当前数据库大小
mysql -e "SELECT table_schema 'Database', SUM(data_length + index_length) / 1024 / 1024 'Size (MB)' FROM information_schema.TABLES GROUP BY table_schema;"
# 检查数据库用户和权限
mysql -e "SELECT User, Host FROM mysql.user;"
mysql -e "SHOW GRANTS FOR 'your_user'@'your_host';"
# 检查当前配置
cat /etc/my.cnf
2. 完整备份现有数据库
# 使用mysqldump进行逻辑备份(推荐)
mysqldump --all-databases --single-transaction --routines --triggers --events -u root -p > full_backup_$(date +%Y%m%d).sql
# 同时备份用户权限
mysql -u root -p --skip-column-names -A -e "SELECT CONCAT('SHOW GRANTS FOR ''',user,'''@''',host,''';') FROM mysql.user WHERE user != ''" | mysql -u root -p --skip-column-names -A | sed 's/$/;/' > mysql_grants_$(date +%Y%m%d).sql
# 备份配置文件
cp /etc/my.cnf /etc/my.cnf.backup.$(date +%Y%m%d)
新环境部署
1. 安装 MariaDB 5.5.68
由于 5.5.68 是一个较旧的版本,您可能需要从官方存档或特定仓库安装:
# 对于 CentOS/RHEL 7
sudo yum install -y https://downloads.mariadb.com/files/MariaDB/mariadb-5.5.68/yum/centos/7/x86_64/rpms/mariadb-5.5.68-centos7-x86_64-server.rpm
# 或者添加MariaDB官方仓库
sudo tee /etc/yum.repos.d/MariaDB.repo <<EOF
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/5.5/centos7-amd64
gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck = 1
EOF
sudo yum install -y MariaDB-server MariaDB-client
# 对于 Ubuntu/Debian
# 需要从MariaDB官网下载对应版本的deb包或添加合适的仓库
2. 配置新数据库环境
# 初始化数据库
sudo mysql_install_db --user=mysql
# 启动服务
sudo systemctl start mysql
# 运行安全安装脚本
sudo mysql_secure_installation
# 停止服务以进行配置
sudo systemctl stop mysql
3. 调整配置文件
根据您的旧配置调整新环境的 /etc/my.cnf 或 /etc/my.cnf.d/server.cnf:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
# 根据旧配置调整以下参数
# innodb_buffer_pool_size =
# max_connections =
# query_cache_size =
# log-bin =
# server-id =
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d
数据迁移
方法一:使用 mysqldump(推荐)
# 在新服务器上恢复数据
mysql -u root -p < full_backup_$(date +%Y%m%d).sql
# 恢复用户权限
mysql -u root -p < mysql_grants_$(date +%Y%m%d).sql
方法二:物理文件复制(适用于大型数据库)
# 1. 停止旧服务器上的MySQL服务
sudo systemctl stop mysql
# 2. 复制数据目录
rsync -av /var/lib/mysql/ user@new-server:/var/lib/mysql/
# 3. 确保新服务器上的文件权限正确
sudo chown -R mysql:mysql /var/lib/mysql
# 4. 启动新服务器上的MySQL服务
sudo systemctl start mysql
迁移后验证
1. 验证数据完整性
# 检查所有数据库是否已迁移
mysql -u root -p -e "SHOW DATABASES;"
# 检查表数量和数据行数
mysql -u root -p -e "SELECT table_schema, COUNT(*) AS table_count FROM information_schema.TABLES GROUP BY table_schema;"
# 抽样检查一些表的数据
mysql -u root -p -e "SELECT COUNT(*) FROM your_database.your_table;"
2. 验证用户和权限
# 检查用户列表
mysql -u root -p -e "SELECT User, Host FROM mysql.user;"
# 验证特定用户的权限
mysql -u root -p -e "SHOW GRANTS FOR 'your_user'@'your_host';"
3. 测试应用程序连接
确保您的应用程序能够连接到新的数据库服务器并正常执行操作。
回滚计划
如果迁移过程中出现问题,需要回滚到旧环境:
- 停止新服务器上的MySQL服务
- 恢复旧服务器的MySQL服务
- 如果需要,使用备份文件恢复数据
升级考虑(可选)
虽然您要求重新部署相同版本,但考虑到 MariaDB 5.5 已停止支持,建议考虑升级到受支持的版本(如 10.3、10.4 或 10.5)。升级步骤:
- 备份当前数据库
- 安装新版本的 MariaDB
- 运行 mysql_upgrade 工具
- 验证数据和应用程序兼容性
# 升级示例(以升级到10.5为例)
sudo systemctl stop mysql
sudo yum remove MariaDB-server MariaDB-client
sudo yum install MariaDB-server-10.5 MariaDB-client-10.5
sudo systemctl start mysql
sudo mysql_upgrade -u root -p
注意事项
- 版本兼容性:确保应用程序与 MariaDB 5.5.68 兼容
- 字符集和排序规则:检查并确保迁移后字符集和排序规则保持一致
- 存储引擎:如果使用 InnoDB,确保配置参数一致
- 复制设置:如果使用了主从复制,需要重新配置
- 定时任务:迁移后需要重新设置任何数据库相关的定时任务
- 监控和日志:设置适当的监控和日志记录

1125

被折叠的 条评论
为什么被折叠?



