热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CentOS系统从MySQL迁移到MariaDB

1.基本的迁移操作记录这个VPS安装的是CentOS,目前版本是6.4,MySQL版本是5.5.31(使用了remi源),虚拟机的配置与此极度相似。刚开始不太了解,执行了这个比较傻的操作方式。A.先配置MARIADB的安装源。目前MariaDB的主版本是5.5,我的Cent
1. 基本的迁移操作记录
这个 VPS 安装的是 CentOS,目前版本是 6.4,MySQL 版本是 5.5.31(使用了 remi 源),虚拟机的配置与此极度相似。刚开始不太了解,执行了这个比较傻的操作方式。
A. 先配置 MARIADB 的安装源。
目前 MariaDB 的主版本是 5.5,我的 CentOS 是 32 位的,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:

    [mariadb]
    name = MariaDB
    enable=1
    priority=3
    baseurl = http://yum.mariadb.org/5.5/centos6-x86
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
    gpgcheck=1

其中 priority=3 是针对 YUM 的 PRIORITIES 优先级插件的。
B. 卸载原来的 MYSQL 及相关包。

    # yum remove mysql*

上面用 * 来匹配删除所有 mysql 数据包(包括因包依赖而删除的别的包,如 postfix)。因为直接安装的时候会出现冲突,例如:
file /usr/share/mysql/ukrainian/errmsg.sys from install of MariaDB-server-5.5.31-1.i686 conflicts with file from package mysql-libs-5.5.32-1.el6.remi.i686
嗯,好像因为将 php-mysql 也给删除了(实际上这个不该删除的),所以 phpMyAdmin 也因为依赖关系而被删除了,我没仔细看。
所以最好不要用通配符 *,而是选择性删除几个主要的,

    # yum remove mysql mysql-server mysql-libs

但是这个我没有再测试,因为后面有更好的方法。
C. 然后安装 MARIADB 及相应 PHP 扩展。
也是指定几个主要的安装包,剩下的让 yum 自己进行依赖关系检查。

    # yum install MariaDB-server  MariaDB-client php-mysql

或者不安装 MariaDB-server 而改为具有同步多主群集特性(synchronous multi-master cluster)的 MariaDB Galera Cluster:

    # yum install MariaDB-Galera-server MariaDB-client galera

这里比较搞笑的是,没注意前面把 php-mysql 给卸载了,结果运行数据库之后访问 WordPress,结果遭遇下面的错误:
Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
D. 完成,修补
不管版本是否升级了,执行一下数据库升级指令总没有坏处:

    # mysql_upgrade -p

看看数据库版本是不是升级了:

    # mysql -u root -p -e 'show global variables like "version";'
    Enter password:
    +---------------+----------------+
    | Variable_name | Value |
    +---------------+----------------+
    | version | 5.5.31-MariaDB |
    +---------------+----------------+

将 MariaDB 加入随系统自启动列表,

    # chkconfig --levels 345 mysql on

嗯,以前 MySQL 的时候是 mysqld,现在是 mysql,就差了一个字母 d。
启动它,

    # service mysql start

这个时候服务器上的网站应该已经可以正常工作了,访问数据库没有问题。
如果有必要,安装完 MariaDB 之后可以重新安装 postfix。如果发现 phpMyAdmin 提示无访问权限了,那就是被卸载了,需要重新安装和配置 phpMyAdmin。
另外,因为之前进行了卸载操作,所以原来的 MySQL 和 phpMyAdmin 的配置文件都被清除了,也需要重新配置。特别是 MySQL 的配置文件 /etc/my.cnf,因为 MariaDB 虽然创建了一个my.cnf.d 文件夹来存储自己的配置文件,但是它会首先加载 my.cnf,且原来 MySQL 的配置的 [mysqld] 那一节的内容还是有效的。

2. 进一步优化的升级方法
还是在上面介绍的系统配置下,先添加 MariaDB 安装源,然后直接执行系统升级,
# yum update --skip-broken
MariaDB 相关安装包会被安装,不需要的 MySQL 包将被卸载,并且升级之后不需要对系统进行修补了。看看输出的前面一部分:

    ==============================================================================================================
    Package Arch Version Repository Size
==============================================================================================================
    Installing:
    MariaDB-Galera-server i686 5.5.29-1 mariadb 19 M
         replacing mysql.i686 5.5.21-1.el6.remi
         replacing mysql-server.i686 5.5.21-1.el6.remi
    MariaDB-server i686 5.5.31-1 mariadb 32 M
         replacing mysql-server.i686 5.5.21-1.el6.remi
    MariaDB-shared i686 5.5.31-1 mariadb 1.0 M
         replacing mysql-libs.i686 5.5.21-1.el6.remi
    kernel i686 2.6.32-358.11.1.el6 updates 24 M
    libjpeg-turbo i686 1.2.1-1.el6 base 176 k
    replacing libjpeg.i686 6b-46.el6
    Updating:
    .........

可以看出来MariaDB设计思想中的无缝替代MySQL确实是精深的技术。所以现在没必要急着做这个升级,因为过不了多久 CentOS 就会采用  MariaDB,到时候就能做到很自然方便地迁移了。


推荐阅读
  • centos 7.0 lnmp成功安装过程(很乱)
    下载nginx[rootlocalhostsrc]#wgethttp:nginx.orgdownloadnginx-1.7.9.tar.gz--2015-01-2412:55:2 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • CentOS7源码编译安装MySQL5.6
    2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 通过Web界面管理Linux日志的解决方案
    本指南介绍了一种利用rsyslog、MariaDB和LogAnalyzer搭建集中式日志管理平台的方法,使用户可以通过Web界面查看和分析Linux系统的日志记录。此方案不仅适用于服务器环境,还提供了详细的步骤来确保系统的稳定性和安全性。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文档详细介绍了2017年8月31日关于MySQL数据库备份与恢复的教学内容,包括MySQL日志功能、备份策略、备份工具及实战演练。 ... [详细]
  • 本文详细介绍了如何解决在使用本地SQlyog客户端尝试连接阿里云上的MariaDB数据库时遇到的2003错误,即无法连接到MySQL服务器的问题。 ... [详细]
  • 华为云openEuler环境下的Web应用部署实践
    本文详细记录了在华为云openEuler系统上进行Web应用部署的具体步骤,包括配置yum源、安装Apache、MariaDB、PHP及其相关组件,并完成WordPress的安装与配置过程。 ... [详细]
  • 在 Ubuntu 22.04 LTS 上部署 Jira 敏捷项目管理工具
    Jira 敏捷项目管理工具专为软件开发团队设计,旨在以高效、有序的方式管理项目、问题和任务。该工具提供了灵活且可定制的工作流程,能够根据项目需求进行调整。本文将详细介绍如何在 Ubuntu 22.04 LTS 上安装和配置 Jira。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 目录一、salt-job管理#job存放数据目录#缓存时间设置#Others二、returns模块配置job数据入库#配置returns返回值信息#mysql安全设置#创建模块相关 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • CentOS 7 默认安装了 MariaDB,作为 MySQL 的一个分支。然而,出于特定需求,我们可能仍需在系统中安装 MySQL。本文将详细介绍如何通过 Yum 包管理器在 CentOS 7 上安装 MySQL,并提供一些常用的 MySQL 命令。 ... [详细]
  • 在关系型数据库中,数据约束是指在向数据表中插入数据时必须遵循的限制条件。在MySQL和MariaDB中,常见的数据约束包括主键约束、唯一键约束、外键约束以及非空约束等。这些约束确保了数据的完整性和一致性,是数据库管理中的重要组成部分。通过合理设置和使用这些约束,可以有效防止数据冗余和错误,提升数据库的可靠性和性能。 ... [详细]
author-avatar
忠讧_136
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有