MySQL导入sql文件,表结构导入失败

问题描述

我想要把本地的MySQL数据库迁移到服务器的MySQL数据库里面,我采用将本地数据库转存为sql文件,再将sql文件在服务器的数据库中运行

问题就出现于我不管怎么运行,数据库中都没有表的信息,而且在运行sql文件的过程中还没有报错(我使用的是Navicat工具)

问题查找

通过Xshell连接远程服务器,我在终端界面通过命令行运行sql文件(这样可以更清晰的看到报错信息)

相关命令

1.连接mysql
mysql> -u用户名 -p密码
2.连接要导入数据库名称
mysql> use 数据库名
3.导入sql文件
mysql> source sql文件的路径
举例:
mysql> source /usr/local/hello.sql

报错信息如下

Unknown collation: 'utf8mb4_0900_ai_ci'

通过查询可以发现

utf8mb4_0900_ai_ci 是MySQL 8.0中引入的新排序规则,其中:

  • utf8mb4 表示它支持4字节的UTF-8字符编码,这意味着它可以处理所有的Unicode字符,包括那些需要4字节存储的字符如某些表情符号。

  • 0900 是这个排序规则的标识符。

  • ai 表示"accent insensitive"(不区分重音)。

  • ci 表示"case insensitive"(不区分大小写)。

而服务器中的mysql版本为5.7.42,这就导致服务器中的mysql无法识别

问题解决

将sql文件中的utf8mb4_0900_ai_ci排序规则全部替换为utf8mb4_unicode_ci

重新运行sql文件,成功

### 回答1: 在Linux中导入MySQLSQL文件,可以使用以下命令: 1. 登录MySQLmysql -u 用户名 -p 2. 创建数据库: create database 数据库名; 3. 选择数据库: use 数据库名; 4. 导入SQL文件: source /路径/文件名.sql; 其中,/路径/文件名.sql是你要导入SQL文件的路径和文件名。 导入完成后,可以使用以下命令查看导入的数据: show tables; select * from 名; 注意:在导入SQL文件之前,需要先创建好数据库和相应的结构。 ### 回答2: 在Linux系统中,我们可以通过命令行的方式来导入 MySQL 数据库,包括导入MySQL SQL文件。 1. 首先,在Linux中登录到 MySQL 数据库中: ``` mysql -u username -p ``` 其中,`username`为MySQL账户的用户名,系统会提示您输入密码。 2. 创建数据库: 我们假设导入SQL 文件是要创建一个名为 `mydatabase` 的数据库,那么您可以通过以下命令来创建: ``` CREATE DATABASE mydatabase; ``` 如果该数据库已存在,可以通过以下命令来选择该数据库: ``` USE mydatabase; ``` 3. 导入SQL文件: 使用以下命令来导入 SQL 文件: ``` SOURCE /path/to/your/sql/file.sql; ``` 其中,`/path/to/your/sql/file.sql` 是你要导入SQL 文件的路径。 如果 SQL 文件有错误,将会显示错误信息,并告诉您哪些语句上出了问题。 如果一切顺利,导入完成后,可以通过以下命令来检查: ``` SHOW TABLES; ``` 会列出该数据库中的所有格。 以上就是在 Linux 中使用 MySQL 导入 SQL 文件的步骤。在操作过程中需要注意的有两点:一是注意数据库的建立与选择,二是正确的指定 SQL 文件路径和文件名。 ### 回答3: 在Linux中,要导入SQL文件MySQL数据库,需要按照以下步骤进行操作: 1. 确认MySQL已经安装并启动 在终端中输入命令“mysql -u root -p”,输入密码后可以进入MySQL命令行模式,MySQL已经安装并启动成功。 2. 创建一个MySQL数据库MySQL命令行模式中,输入命令“CREATE DATABASE database_name;”,其中database_name是你要创建的数据库名称。创建数据库成功后,可以使用命令“SHOW DATABASES;”来查看当前所有数据库。 3. 将SQL文件复制到Linux服务器上 将要导入SQL文件复制到Linux服务器上。 4. 导入SQL文件MySQL数据库中 在Linux终端中,使用以下命令导入SQL文件mysql -u username -p database_name < file_name.sql 其中,username是MySQL用户的名称,database_name是要导入数据的数据库名称,file_name.sql是要导入SQL文件名。命令执行后需要输入MySQL用户密码来完成导入。 5. 验证数据是否导入成功MySQL命令行模式中,使用“USE database_name;”命令切换到要查看的数据库,然后使用“SHOW TABLES;”命令查看导入的数据是否存在。如果数据存在,则说明数据导入成功。 总结: 在Linux系统中,将SQL文件导入MySQL数据库需要按照以上步骤进行操作。在操作过程中,需要注意MySQL用户是否具有导入数据库的权限,以及SQL文件中是否包含正确的数据库名等信息。只有在操作正确无误的前提下,才能够顺利实现数据导入的目的。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

栖迟于一丘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值