首页 > 数据库 >mysql复制数据库,数据库排序规则不一致问题

mysql复制数据库,数据库排序规则不一致问题

时间:2023-10-12 11:26:08浏览次数:37  
标签:ci utf8mb4 规则 数据库 mysql sql 排序

mysql复制数据库步骤

1.导出数据库sql文件

 mysqldump 数据库名 -h  数据库地址 -P数据库端口(3306可省略) -u账号 -p密码 --add-drop-table  > /路径/sql文件名.sql

 

2.确认导出和导入数据库编码和排序规则是否一致

show global variables like '%coll%'

show global variables like '%cha%'

也可以通过navicat查看

 

这里如果检查不一致可以修改要导入的新库编码排序规则和老库保持一致

也可以修改sql文件,使需要导出的sql文件编码排序规则和新库保持一致

 

3.检查导出的sql文件,让sql语句编码和排序规则和新库保持一致

有的时候sql文件太大,超过10G,打开文件,替换字符的方式就不太适用,本机的内存跟不上,打不开文件

这个时候可以采取其他方法:在linux主机上用shell命令操作

这里检查一般用3~4种排序规则检查:老库的排序规则,utf8mb4_0900_ai_ci (如果mysql8.0默认排序规则未设置,新建表会用这个),新库排序规则,可能会用到的其他排序规则(比如从其他库同步过来的表)

检查sql文件排序规则

grep -r 'utf8mb4_unicode_ci' sql文件名.sql
grep -r 'utf8mb4_bin' sql文件名.sql
grep -r 'utf8mb4_0900_ai_ci' sql文件名.sql
grep -r 'utf8mb4_general_ci' sql文件名.sql

 

我这里在sql文件里查出了

utf8mb4_bin (老库排序规则)

utf8mb4_0900_ai_ci (mysql8.0默认排序规则)

但是新库排序规则为 utf8mb4_general_ci

替换sql文件排序规则

sed -i "s|utf8mb4_bin|utf8mb4_general_ci|g" 文件名.sql
sed -i "s|utf8mb4_0900_ai_ci|utf8mb4_general_ci|g" 文件名.sql

检查是否完全替换

grep -r 'utf8mb4_bin' sql文件名.sql
grep -r 'utf8mb4_0900_ai_ci' sql文件名.sql
grep -r 'utf8mb4_general_ci' sql文件名.sql

 

检查无误后,开始导入数据库

 

4.导入数据库

方法1:

 mysql -uroot -p db_name < db_name.tmp

方法2:

#登陆mysql
mysql -uroot -p密码
#查看所有数据库
show databases;
#切换到新库
use 新库名;
#确认为空库
show tables;
#导入sql文件
source /路径/sql文件名.sql

 

标签:ci,utf8mb4,规则,数据库,mysql,sql,排序
From: https://www.cnblogs.com/allay/p/17759064.html

相关文章

  • 2023_10_12_MYSQL_DAY_04_笔记
    2023_10_12_MYSQL_DAY_04_笔记14章课后作业CREATETABLExi(xidINTPRIMARYKEYAUTO_INCREMENT,xnameVARCHAR(10)UNIQUE,xheadVARCHAR(10)NOTNULL,xlocVARCHAR(30)DEFAULT'浑南区');CREATETABLEclass02(cnoINTPRIMARYKEY......
  • 对于ogg19 mysql 中如果mysql中存在json数据类型,进程会abend问题报错信息 OGG-00774
    对于ogg19mysql是不支持json的这个数据类型还是比较常见的,这个数据类型是在ogg21才开始支持,对于这种报错可以打补丁进行修复Bug29998662:MySQLExtractAbendsWithoutErrorwithJSONdatatypesinbinlog 参考自:MySQLExtractAbendsWithoutErrorWithJSONDataT......
  • 【MySQL】alter table TableName engine=InnoDB 完成表重建
    通过altertable来实现重建表原文地址:https://zhuanlan.zhihu.com/p/610997918mysql基础架构执行原理原文地址:https://blog.csdn.net/Kong_a/article/details/119775660MDL锁介绍原文地址:https://blog.csdn.net/weixin_43189971/article/details/126436023 1、应用背景在日......
  • 如何解决逻辑删除is_del与数据库唯一约束冲突
    前言不知道大家有没有遇到这么一种业务场景,在业务中有个唯一约束A,当该业务进行逻辑删除后(设置标记为删除状态is_del=1),再往唯一约束列插入相同的值时,此时会报Duplicateentry,但在业务上,该值时必须要插入的。今天我们就来聊聊处理这种业务场景的几种思路解决思路方案一:不采用逻......
  • Docker 安装mysql8.0
    环境CentOS7、MySQL8、SQLyog12需求在Docker中部署MySQL8步骤1、从docker仓库中拉去mysql8.0dockerpullmysql:8.0如果使用dockerpullmysql默认拉取的是最新版本的mysql上面我拉去的是8.0的版本,最后拉取过来的是8.0.27如果有想要指定的版本,可以直接写指定版本,......
  • 基于凸多边形离散点排序的研究
    OrderBy(){varvertices1=_.cloneDeep(this.polygon);varxArray=vertices1.map((item)=>item.x);varyArray=vertices1.map((item)=>item.y);const[minX,maxX,minY,maxY]=[_.min(xArray),_.max(xArray),_.min(yArray),_.m......
  • MySQL 8.0参数最佳实践
    MySQL8.0.34版本my.cnf最佳实践参考实例[client]port=3307socket=/data/mysql/3307/run/mysql.sockdefault-character-set=utf8mb4[mysql]port......
  • python列表中的元素按照自身某个索引的元素排序
    title:aliases:-python列表按元素排序tags:-Python/数据处理category:stars:url:creation-time:2023-07-3115:26modification-time:#!/usr/bin/python#-*-coding:UTF-8-*-#获取列表的第二个元素deftakeSecond(elem):returnelem[1]#列表r......
  • hive数据库指定删除首行数据
    在我们将csv文件或者txt文件导入到虚拟机本地时,要是不提前将首行的数据指引删除,就会跟随着我们的期望数据显示在hive的数据库里面,上次测试,我就是直接在csv文件里面删除了,但是运行起来确实稍微慢了一点,要是数据条数再多一些,就很难直接在根文件里面进行删除,所以,我找到了一个新的方......
  • 2023_10_11_MYSQL_DAY_03_笔记_下
    2023_10_11_MYSQL_DAY_03_笔记_下#截断表的作用是把原来的表摧毁,重新创建一个结构和原来一模一样的新表,语法如下:TRUNCATETABLEtable;#TRUNCATE和DELETE区别#1、TRUNCATE是DDL命令,使用ROLLBACK不可以回滚。而DELETE是DML命令,使用ROLLBACK可以回滚。#2、DELETE可以通过指定......