在Linux 中怎样将 MySQL 迁移到 MariaDB 上

在Linux 中怎样将 MySQL 迁移到 MariaDB 上,第1张

如果是相同的基础版本(如 5.5),可以直接卸载 MySQL 然后安装 MariaDB,这样就可以用了。甚至不需要备份然后还原数据库。当然,保险起见,升级前将所有的数据库都备份一下还是非常有必要的,以防万一。如果 MariaDB 的主版本高,在经过上面的卸载 MySQL 再安装 MariaDB *** 作之后,需要使用 mysql_upgrade 升级一下。是的,甚至连命令行都与使用MySQL 的时候一样。

A. 先配置 MariaDB的安装源。

目前 MariaDB 的主版本是 10.1,将下面的安装源配置保存为MariaDB.repo,上传到服务器的 /etc/yum.repos.d 文件夹:

[mariadb]

name = MariaDB

enable=1

priority=3

baseurl = http://yum.mariadb.org/10.1/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-***** conflicts with file from package mysql-libs-5.5.32-****

嗯,好像因为将 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. 完成,修补MariaDB

不管版本是否升级了,执行一下数据库升级指令总没有坏处:

# 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。

启动MariaDB

# service mysql start

卸载Mysql

[root@localhost ~]# rpm -qa|grep mysql

mod_auth_mysql-2.6.1-2.2

php-mysql-4.3.9-3.15

mysql-devel-4.1.20-1.RHEL4.1

mysql-4.1.20-1.RHEL4.1

mysqlclient10-3.23.58-4.RHEL4.1

libdbi-dbd-mysql-0.6.5-10.RHEL4.1

说明:rpm –qa | grep mysql 命令是为了把mysql相关的包都列出来,我上面的例子是Linux AS4默认安装mysql的rpm软件包列表,如果是别的Linux版本列出来的列表有可能会不一样,不过不用担心,不管是什么,卸载都从最下面的一个包开始,直到卸载掉第一个为止。

比如:在这个例子中,我们应该先卸载libdbi-dbd-mysql-0.6.5-10.RHEL4.1 方法如下:rpm –e -dbd-mysql-0.6.5-10.RHEL4.1

说明:rpm –e 是卸载rpm包的命令,后面是包名称,最后的版本号是不用打的,比如我们下一步卸载mysqlclient10-3.23.58-4.RHEL4.1包

1. 下载mysql的repo源

$ wget

2. 安装mysql-community-release-el7-5.noarch.rpm包

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysql的yum repo源:

/etc/yum.repos.d/mysql-community.repo

/etc/yum.repos.d/mysql-community-source.repo

3. 安装mysql

$ sudo yum install mysql-server

根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。

4. 重置密码

重置密码前,首先要登录

$ mysql -u root

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:

$ sudo chown -R openscanner:openscanner /var/lib/mysql

然后,重启服务:

$ service mysqld restart

接下来登录重置密码:

$ mysql -u root

mysql >use mysql

mysql >update user set password=password(‘123456‘) where user=‘root‘

mysql >exit

5. 开放3306端口

$ sudo vim /etc/sysconfig/iptables

添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

保存后重启防火墙:

$ sudo service iptables restart

这样从其它客户机也可以连接上mysql服务了。

搜索《linux就该这么学》更多资讯!


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7549030.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-07
下一篇 2023-04-07

发表评论

登录后才能评论

评论列表(0条)

保存