有人告诉我,通过shell (例如<和> )重定向可能(并不总是)影响数据库的排序规则(.e.g,utf8)。如何导入导出而不需要重定向,这样我就不必担心这个问题了。
发布于 2011-04-18 03:26:39
但是,始终存在mysqlimport实用程序,但是您的源必须有分隔值.例如从"SELECT * from . INTO .“中获得的.
如果您正在移动大量数据,那么无论如何使用这种大容量加载方法可能会更快。
但是,要注意它可能对复制产生的后果。
发布于 2011-04-13 14:37:58
您可能希望在导入服务器上执行此命令。
SHOW CREATE DATABASE dbname;这将显示要导入的数据库的默认排序规则。
如果需要,也可以使用更改导入数据库的排序规则。
更新!
首先,我想看看操作系统上写的字符集是什么。在Linux命令行上,只需运行以下命令:
echo ${LANG}从MySQL的角度来看
可以显式地将mysqldump中的默认字符集命名为
--default-character-set (default is utf8)您可以在mysql客户机中看到它:
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)试试看!!
至于排序规则,您可能需要设置一个或多个环境变量,如下所示:
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的导入时,显式地将这些设置如下:
mysqldump -h... -u... -p... --default-character-set=utf8 --triggers --routines source_db | mysql -h... -u... -p... --collation_connection=latin1_swedish_ci -A -Dtarget_db发布于 2011-04-13 08:51:34
那么,您可以登录MySQL并执行以下操作:
mysql> source myfile.sql这完全从图片中删除了外壳,但我仍然建议对环境变量(如NLS_LANG )进行双重检查。
https://dba.stackexchange.com/questions/2167
复制相似问题