当前位置:首页 » 操作系统 » mysql导出数据库乱码

mysql导出数据库乱码

发布时间: 2023-07-03 18:31:32

❶ mysql导出数据库乱码怎么办

在mysql导入导出数据时经常出现中文乱码的问题,大多是因类导入导出时编码设置不一致所引起的。本文介绍了不同平台下的编码转换方法,供大家参考。
linux系统中默认的是utf8编码,而windows是gbk编码,如果在这二个系统间导入未经指定编码的数据,就会出现乱码。
首先,确定导出数据的编码格式,使用mysqlmp的时候需要加上--default-character-set=utf8,
例如:
mysqlmp -uroot -p --default-character-set=utf8 dbname tablename > bak.sql
那么导入数据时也要使用--default-character-set=utf8:
mysql -uroot -p --default-character-set=utf8 dbname < bak.sql
统一编码后,mysql数据迁移中的乱码问题就解决了。
使用windows作为导出数据源,并导入 freebsd环境下的mysql库,解决方法详解。
导出数据
一、首先,在windows平台下mysql用作导出数据库源。
查看字符编码的系统变量:
代码示例:
mysql> show variables like ‘%char%';
+————————–+—————————-+
| 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 | gbk |
| character_set_system | utf8 |
| character_sets_dir | D:mysqlsharecharsets |
+————————–+—————————-+
查看character_set_database,这里是latin1,latin1是装不了多字节字符集的。
二、在windows下设置系统变量为utf8
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
三、导出数据
mysql> select * from table into outfile ‘c:table.txt' where +条件
这时导出了部分数据,并以txt文件存在 table.txt中。
导入数据
在freebsd平台下
一、同样设置字符编码的系统变量
代码示例:
mysql> show variables like ‘%char%';
+————————–+—————————-+
| 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 | gbk |
| character_set_system | utf8 |
+————————–+—————————-+
mysql>set character_set_database=utf8; ##设置默认的字符集为utf8
二、转载数据
mysql>load data local infile ‘/home/table.txt' into table `table`;
至此、条件数据完整导入导出,并处理了乱码的情况。
总之,两台mysql服务器导入导出时,一定要确保两台服务器的character_set_database参数相同,这样才能防止一些乱码的情况。当然我们还可以使用其他字符集,如gbk来进行调整。
解决方法三
乱码解决方法
导入数据后,在命令行查看发现中文乱码
使用以下命令查看系统字符集
show variables like 'char%';
如果不是GBK或UTF8,则停止mysql服务,然后到安装目录修改my.ini文件,
将文件中下面的变量改成如下,如果没有这个变量则增加这些变量
[mysql]
default-character-set=gbk
[mysqld]
character-set-server=utf8
重新启动服务,重新导入数据,如果还乱码,只要把导入与导出编码统一即可解决问题。

❷ mysql导入数据库后 汉字变乱码了 怎么回事

文件的编码和数据库的编码要一致,导出时要执行set
names
utf8(
或者gbk等你数据库的编码),这样就不会乱了。

❸ sql语句导入mysql数据库乱码怎么解决

sql语句导入mysql数据库乱码解决步骤如下:

1、首先要保证txt文件是用UTF8格式保存的,这里可以打开查看一下内容确认格式。

❹ 从Mysql 里面导出来的数据怎么是乱码

这是编码不同造成的,要保证下面三处的编码相同才行 以编码为 Utf-8为例:
1.在创建网页时 首选项里面 要用 charset=utf-8;
2.在建表的时候设置编码类型 整理编码 为 utf-8;
3.以php为例 在数据库连接语句处 要加一行mysql_query('SET NAMES "utf-8"') 进行数据格式化;
比如:
$db_host="localhost";
$db_user="root";
$db_password="password";
$db_name="test";
$link=mysql_connect($db_host,$db_user,$db_password);
mysql_query("SET NAMES 'utf-8'",$link); // 这句是 防乱码 重点
$db=mysql_select_db($db_name,$link);

只要保证做到上面三条 就不会出现中文乱码了 编码也可以选其它的 只要三处编码相同就行;
Good luck~~

❺ MySQL数据库中的中文乱码如何解决

mysql数据乱码问题可能有以下三种原因:
1.server本身设定问题,例如还停留在latin1版本;
2.table的语系设定问题(包含character与collation);
3.客户端程式(例如php,java)的连线语系设定问题;
建议使用utf8!!!!

想要避免mysql的中文乱码问题,可以尝试以下方法:
1,对于版本问题,建议去官网更新最新的版本或者比较好用的版本;

2,创建数据库,创建表时没有对字符编码进行设定会造成乱码问题:

创建数据库的时候:CREATE DATABASE `test`
CHARACTER SET 'utf8'
COLLATE 'utf8_general_ci';

建表的时候 CREATE TABLE `database_user` (
`ID` varchar(40) NOT NULL default '',
`UserID` varchar(40) NOT NULL default '',
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3,对于第三种情况,参考一下方法:
编辑linux服务器中/etc/my.cnf文件,在[mysql]段加入default_character_set=utf8;
如果只是调试遇到乱码问题:
在编写Connection URL时,加上?useUnicode=true&characterEncoding=utf-8参数;
并且在网页代码中加上一个"set names utf8"或者"set names gbk"的指令,告诉MySQL连线内容都要使用utf-8或者gbk。
utf8或者gbk;

热点内容
制作自解压安装 发布:2025-03-20 05:41:49 浏览:303
华为连接电视密码是多少 发布:2025-03-20 05:31:11 浏览:492
算法第五版 发布:2025-03-20 05:17:57 浏览:730
湖南台访问 发布:2025-03-20 05:10:32 浏览:38
脚本和秒抢 发布:2025-03-20 05:06:29 浏览:591
b35锁如何设置密码 发布:2025-03-20 05:06:27 浏览:905
淘宝如何租云服务器 发布:2025-03-20 05:05:12 浏览:213
编程忌讳 发布:2025-03-20 04:58:35 浏览:427
国家知识产权专利数据库 发布:2025-03-20 04:54:29 浏览:416
win7怎么给文件夹设密码 发布:2025-03-20 04:52:38 浏览:725