centos mysql 迁移 centos8安装docker
大家好,如果您还对centos mysql 迁移不太了解,没有关系,今天就由本站为大家分享centos mysql 迁移的知识,包括centos8安装docker的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
在Linux 中怎样将 MySQL 迁移到 MariaDB 上
如果是相同的基础版本(如 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=
gpgkey=
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
这个时候服务器上的网站应该已经可以正常工作了,访问数据库没有问题。
如果有必要,安装完 MariaDB之后可以重新安装 postfix。如果发现 phpMyAdmin提示无访问权限了,那就是被卸载了,需要重新安装和配置 phpMyAdmin。
原文:
从MySQL迁移到MariaDB(CentOS)-
如何将MySQL的数据迁移到MariaDB里面去
本来 MariaDB的描绘初衷之一即是彻底兼容 MySQL,包含 API和客户端协议,使之能轻松变成 MySQL的代替品,所以由 MySQL搬迁到
MariaDB基本上能够称之为“晋级”,就如同软件晋级版别一样。MariaDB的技能文档上是这样写的:
若是是一样的根底版别(如
5.5),能够直接卸载 MySQL然后装置
MariaDB,这样就能够用了。乃至不需求备份然后复原数据库。当然,稳妥起见,晋级前将一切的数据库都备份一下仍是十分有必要的,以防万一。
若是
MariaDB的主版别高,在通过上面的卸载 MySQL再装置 MariaDB操作之后,需求运用 mysql_upgrade
晋级一下。是的,乃至连命令行都与运用 MySQL的时分一样。
一切原先的客户端和连接器(PHP、Perl、Python、Java
等)都不需求做任何改动就能正常作业,由于 MariaDB与 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]
那一节的内容仍是有用的。
3.较好的晋级办法
仍是在上面介绍的体系装备下,先增加 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不是噱头,而是实实在在的技能。所以我也就不急着给 VPS晋级到 MariaDB了,横竖过不了多久 CentOS
就会选用 MariaDB,到时分再自然而然地搬迁吧。转载
技术分享 | MariaDB 迁移到 MySQL 的部分注意事项
一、背景
MariaDB,由MySQL的创始人创建,因其与MySQL基本完全的兼容性和免费开源而受到欢迎,甚至在某些版本上被CentOS7替代。在MariaDB到MySQL的迁移案例中,本文将分享项目中遇到的问题及注意事项。
环境为MariaDB 10.3到MySQL 5.7.25。
二、简略操作过程
迁移过程通常包括修改my.cnf配置文件以移除MariaDB中不存在于MySQL的部分参数,使用此配置文件安装MySQL,然后使用mysqldump备份MariaDB的库表数据,并导入到MySQL中。
三、导入数据报错
md5(uuid())
在导入过程中遇到语法错误,MySQL不识别md5(uuid())。通过查看表结构,发现主键列instance_id存在default属性,md5函数嵌套在uuid函数中。官方文档显示,自10.2.1之后,default可以与表达式或函数一起使用。然而,MySQL中default子句指定的默认值必须为文字常量,不能为表达式或函数,导致导入报错。
PAGE_CHECKSUM
同样在导入过程中,发现语法错误,MySQL不识别“PAGE_CHECKSUM=1”。表结构显示该参数适用于Aria引擎,但Aria引擎是MariaDB独有的,MySQL没有对应的参数。
四、应用测试报错
应用测试执行SQL语句时,出现错误。查询显示为经典的选择语句后字段未出现在group by中的情况。my.cnf使用了MariaDB配置,但MySQL的sql_mode包含ONLY_FULL_GROUP_BY。在MariaDB中,此参数默认值不包含ONLY_FULL_GROUP_BY。在MySQL中,sql_mode默认包含ONLY_FULL_GROUP_BY,导致报错。修改sql_mode后,业务运行正常。
五、结语
迁移MariaDB到MySQL时,不应仅依赖文档。应结合官方文档进行全面测试,以发现各种细节差异,确保迁移过程顺利,数据安全是首要目标。正确的迁移策略应包括测试、对比配置文件、关注默认参数值变化,并在实际迁移前进行充分验证。