zabbix-maraidb更换成MySQL
·
因为公司的一些要求,我们需要把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
把上面的内容安装好之后,我们再进去我们的数据库,输入以下命令
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;

要是数据符合,就说明我们的迁移工作做完了
更多推荐
所有评论(0)