因为公司的一些要求,我们需要把mariadb数据库更换成MySQL数据库

这里我们的环境 centos8 mariadb(10.3.17) MySQL数据库5.7.31

首先我们要先把mariadb的数据库备份一份,到时候安装好MySQL数据库的时候好,直接导入

#查看mariadb版本 

先进入数据库

status

\#查看转换前的字符集

show variables like '%character%';

show variables like 'collation%';
#更改数据库编码(字符集):
ALTER DATABASE DATABASE_NAME  DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

#更改表编码(字符集)(注意:这里修改的是表的字符集,表里面字段的字符集并没有被修改):
ALTER TABLE TABLE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 
#更改表编码(字符集)和表中所有字段的编码(字符集):

ALTER TABLE TABLE_NAME CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

修改原mysql配置信息:

/*来自客户端的语句的字符集*/
set character_set_client = utf8mb4;
/*建立连接使用的字符集*/
set character_set_connection = utf8mb4;
/*默认数据库使用的字符集。当默认数据库更改时,服务器则设置该变量。如果没有默认数据库,变量的值同character_set_server*/
set character_set_database = utf8mb4;
/*用于向客户端返回查询结果的字符集*/
set character_set_results = utf8mb4;
/*服务器的默认字符集*/
set character_set_server=utf8mb4;

修改mysql配置文件 vim etc/my.cnf

 [client]
                  default-character-set = utf8mb4
                  [mysql]
                  default-character-set = utf8mb4
                  [mysqld]
                  character-set-client-handshake = FALSE
                  character-set-server = utf8mb4
                  collation-server = utf8mb4_unicode_ci
                  init_connect='SET NAMES utf8mb4'
重启完检查编码是否修改完成

service mysql restart

#登录mariadb,查看编码方式
show variables like '%character%';
show variables like 'collation%';

前期工作准备好之后,我们这边可以开始备份数据库了

mysqldump --all-databases --user=root --password --master-data > backupdb.sql

(这里根据数据库的大小,等待的时间也不一样)

备份好之后,我们就可以把mariadb删除干净,然后下载MySQL

怎么卸载mariadb数据库

怎么安装MySQL数据库

把上面的内容安装好之后,我们再进去我们的数据库,输入以下命令

use mysql;
drop table if exists slave_master_info; 
drop table if exists slave_relay_log_info; 
drop table if exists slave_worker_info; 
drop table if exists innodb_index_stats; 
drop table if exists innodb_table_stats;

把数据库的表删好之后,我们再导入我们刚刚备份好的数据库文件

mysql> source /root/backupdb.sql

之后就是漫长的等待了,等数据库全部导入的时候,我们再重启一下数据库

systemctl restart mysqld

在这里插入图片描述

这时候我们再进入数据库检查一下我们的数据库的大小,是否符合

mysql> select

        table_schema as '数据库',

        sum(table_rows) as '记录数',

        sum(truncate(data_length/1024/1024, 2)) as '数据容量(MB)',

        sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'

        from information_schema.tables

        group by table_schema

        order by sum(data_length) desc, sum(index_length) desc;

在这里插入图片描述
要是数据符合,就说明我们的迁移工作做完了

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐