首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何导入/导出MySQL数据库而不进行重定向?

如何导入/导出MySQL数据库而不进行重定向?
EN

Database Administration用户
提问于 2011-04-13 08:30:38
回答 3查看 2.6K关注 0票数 7

有人告诉我,通过shell (例如<> )重定向可能(并不总是)影响数据库的排序规则(.e.g,utf8)。如何导入导出而不需要重定向,这样我就不必担心这个问题了。

EN

回答 3

Database Administration用户

发布于 2011-04-18 03:26:39

但是,始终存在mysqlimport实用程序,但是您的源必须有分隔值.例如从"SELECT * from . INTO .“中获得的.

如果您正在移动大量数据,那么无论如何使用这种大容量加载方法可能会更快。

但是,要注意它可能对复制产生的后果。

票数 4
EN

Database Administration用户

发布于 2011-04-13 14:37:58

您可能希望在导入服务器上执行此命令。

代码语言:javascript
复制
SHOW CREATE DATABASE dbname;

这将显示要导入的数据库的默认排序规则。

如果需要,也可以使用更改导入数据库的排序规则

更新!

首先,我想看看操作系统上写的字符集是什么。在Linux命令行上,只需运行以下命令:

代码语言:javascript
复制
echo ${LANG}

从MySQL的角度来看

可以显式地将mysqldump中的默认字符集命名为

代码语言:javascript
复制
--default-character-set (default is utf8)

您可以在mysql客户机中看到它:

代码语言:javascript
复制
mysql> show variables like '%charac%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     |
| character_set_connection | latin1                     |
| character_set_database   | latin1                     |
| character_set_filesystem | binary                     |
| character_set_results    | latin1                     |
| character_set_server     | latin1                     |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

试试看!!

至于排序规则,您可能需要设置一个或多个环境变量,如下所示:

代码语言:javascript
复制
mysql> show variables like '%coll%';<BR>
+----------------------+-------------------+
| Variable_name        | Value             |
+----------------------+-------------------+
| collation_connection | latin1_swedish_ci |
| collation_database   | latin1_swedish_ci |
| collation_server     | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)

在mysqldump的导出和mysql的导入时,显式地将这些设置如下:

代码语言:javascript
复制
mysqldump -h... -u... -p... --default-character-set=utf8 --triggers --routines source_db | mysql -h... -u... -p... --collation_connection=latin1_swedish_ci -A -Dtarget_db
票数 2
EN

Database Administration用户

发布于 2011-04-13 08:51:34

那么,您可以登录MySQL并执行以下操作:

代码语言:javascript
复制
mysql> source myfile.sql

这完全从图片中删除了外壳,但我仍然建议对环境变量(如NLS_LANG )进行双重检查。

票数 1
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/2167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档