ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

本文记录了从MySQL 8.0.19本地数据库迁移到服务器MySQL 5.7.29时遇到的1273错误,并提供了解决方案。错误源于高版本数据类型在低版本中不被识别,通过修改SQL文件中的字符集和校对规则,成功解决了迁移问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

博客文章地址:点我查看

起因

本地数据库迁移到服务器出错,特此记录下。

ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

配置

本地:mysql 8.0.19
服务器:mysql 5.7.29

解决方法

因为是高版本导入到低版本,引起1273错误

打开sql文件,将文件中的所有
utf8mb4_0900_ai_ci替换为utf8_general_ci

utf8mb4替换为utf8
保存后重新在服务器运行sql文件即可。

mysql> -- 创建学生管理数据库 mysql> CREATE DATABASE IF NOT EXISTS student_management -> DEFAULT CHARACTER SET utf8mb4 -> COLLATE utf8mb4_0900_ai_ci; ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci' mysql> mysql> USE student_management; ERROR 1049 (42000): Unknown database 'student_management' mysql> mysql> -- 学生表 mysql> CREATE TABLE students ( -> student_id INT AUTO_INCREMENT PRIMARY KEY, -> name VARCHAR(50) NOT NULL, -> gender ENUM('男','女') DEFAULT '男', -> birthdate DATE, -> contact_phone VARCHAR(15) UNIQUE -> ) ENGINE=InnoDB; ERROR 1046 (3D000): No database selected mysql> mysql> -- 课程表 mysql> CREATE TABLE courses ( -> course_id INT AUTO_INCREMENT PRIMARY KEY, -> course_name VARCHAR(50) NOT NULL, -> credit TINYINT UNSIGNED DEFAULT 1 -> ); ERROR 1046 (3D000): No database selected mysql> mysql> -- 成绩表 mysql> CREATE TABLE scores ( -> score_id INT AUTO_INCREMENT PRIMARY KEY, -> student_id INT, -> course_id INT, -> score DECIMAL(5,2) CHECK (score BETWEEN 0 AND 100), -> exam_date DATE, -> FOREIGN KEY (student_id) REFERENCES students(student_id), -> FOREIGN KEY (course_id) REFERENCES courses(course_id) -> ); ERROR 1046 (3D000): No database selected mysql> mysql> -- 插入示例数据 mysql> INSERT INTO students (name, gender, birthdate, contact_phone) VALUES -> ('张三', '男', '2003-05-15', '13800138001'), -> ('李四', '女', '2002-11-23', '13900139002'); ERROR 1046 (3D000): No database selected mysql> mysql> INSERT INTO courses (course_name, credit) VALUES -> ('高等数学', 4), -> ('大学物理', 3), -> ('数据库原理', 2); ERROR 1046 (3D000): No database selected mysql> mysql> INSERT INTO scores (student_id, course_id, score, exam_date) VALUES -> (1, 1, 85.5, '2023-06-10'), -> (1, 3, 92.0, '2023-06-12'), -> (2, 2, 78.5, '2023-06-11'); ERROR 1046 (3D000): No database selected mysql> mysql> -- 查询示例 mysql> -- 查询学生基本信息 mysql> SELECT * FROM st
04-01
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值