Linux mysql 从文件导入数据 出现乱码



Linux mysql 从文件导入数据 出现乱码

首先我的sql文件没乱码,(用ultraedit 管理员界面可以看到文件编码)

数据库编码和文件一致

 

解决方法:

进到mysql里面看看variables

mysql> show variables like “%char%”;

 

+————————–+——————————————–+

 

| Variable_name | Value |

 

+————————–+——————————————–+

 

| character_set_client | latin1 |

 

| character_set_connection | latin1 |

 

| character_set_database | utf8 |

 

| character_set_filesystem | binary |

 

| character_set_results | latin1 |

 

| character_set_server | utf8 |

 

| character_set_system | utf8 |

 

| character_sets_dir | /usr/local/ |

 

+————————–+——————————————–+

 

8 rows in set (0.01 sec)


 

mysql> show variables like “%coll%”;

 

+———————-+——————-+

 

| 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)

 

有几个latin1_swedish_ci的,不是utf8

 

修改sql文件:

SET collation_connection = utf8_bin;

SET collation_database = utf8_bin;

SET collation_server = utf8_bin;

SET character_set_client = utf8;

SET character_set_connection = utf8;

 

然后再导入sql文件即可:

source /usr/distributation/basic_user_profile.sql