gpt4 book ai didi

mysql - 数据库中的字符集和排序规则

转载 作者:行者123 更新时间:2023-11-29 13:49:12 26 4
gpt4 key购买 nike

我是数据库的初学者,所以请耐心等待。我正在尝试设置一个数据库并从文件tables.sql 导入一些表。 tables.sql 中的一些列中有瑞典字母(ä、Ö),问题是我得到以下内容:

Ä = ä
Ö = ö

首先我开始检查服务器的字符集:

mysql> show variables like 'character_set_server';

服务器配置为字符集“Latin-1”。我必须提到,除了创建数据库之外,我无法控制服务器。所以我想我必须创建我的数据库并指定数据库的字符集。

这就是我的做法:

mysql> create database db;

mysql> alter database db character set utf8 collate utf8_swedish_ci;

我通过执行双重检查我的tables.sql是否具有字符集utf-8:

file -bi allsok_tables.sql

然后我通过以下方式将其加载到数据库中:

$ mysql -u [username] -h [hostname] -P [port] -p db < tables.sql

当我在tables.sql中创建表时,我使用engine = InnoDB(不知道这是否相关)。但是,如果我现在选择 TableTest 表中的所有内容

mysql> select * from TableTest

我得到这些奇怪的字符而不是瑞典字符。我非常感谢现在的任何帮助。

提前致谢!

更新:

如果我手动将值插入表中,它会起作用,例如

mysql> insert into TableTest values ('åäö');

所以问题似乎出在 .sql 文件上。对吗?

最佳答案

$ mysql ... --default-character-set=utf8 < tables.sql
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

MySQL 需要知道您发送的数据采用什么编码。为此,您需要设置连接编码。从客户端连接到 MySQL 时,您通常会运行 SET NAMES 查询或在您选择的 API 上使用等效调用来执行此操作。在命令行上,--default-character-set 选项可以执行此操作。它需要设置为您的文件采用的任何编码。

关于mysql - 数据库中的字符集和排序规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16935961/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com