方法一:
登录MySQL,先做 set names latin1 ,然后在更新语句或者执行SQL语句
1
2
|
mysql>
set
names latin1;
mysql> source test.sql;
|
方法二:
在SQL文件中指定set names latin1;然后登录MySQL,执行相应文件
1
2
3
4
|
[root@localhost ~]# cat test.sql
set
names latin1;
insert
*****************;
mysql> source test.sql;
|
方法三:
在SQL文件中指定set names latin1;然后通过MySQL命令导入
1
|
[root@localhost ~]# mysql -uroot -p123456 test <test.sql
|
方法四:
通过指定MySQL命令的字符集参数实现--default-character-set=latin1
1
2
3
|
[root@localhost ~]# cat test.sql
insert
*****************;
[root@localhost ~]# mysql -uroot -p123456
--default-character-set=latin1 test <test.sql
|
方法五:推荐此方法,但是建议使用utf8
在配置文件里设置客户端以及服务器端相关参数
即修改my.cnf 客户端的模块参数,可以实现set names utf8,且永久生效
1
2
3
4
5
6
|
[client]
default-character-set=utf8
无需重启MySQL,退出当前登录,重新登录即可
[server]
default-character-set=utf8 5.1以前的版本
character-set-server=utf8 5.5版本
|
库表,程序!
CREATE DATABASE wyb DEFAULT CHARACTER SET utf8 collate utf8_general_cli;
字符集含义总结表
1
2
3
4
5
6
7
|
mysql> show variables
like
'character_set%'
;
| character_set_client | utf8 #客户端字符集
| character_set_connection | utf8 #链接字符集
| character_set_database | utf8 #数据库字符集,配置文件指定或者创建时指定
| character_set_results | utf8 #返回结果字符集
| character_set_server | utf8 #服务器字符集,配置文件,或者创建库,表时候指定
在使用mysql5.7时,会发现通过web端向数据库中写入中文后会出现乱码,但是在数据库中直接操作SQL语句插入数据后中文就显示正常,这个问题怎么解决呢?此处不对mysql的数据编码过程和原理进行讲解,如果有兴趣的同学可以自己百度。 下面我们就直接使用如下操作解决:
一、打开mysql控制台,输入命令show variables like 'character%'; 显示如下: +--------------------------+-------------------------------------------+ 二、修改my.ini文件 [client] default-character-set=utf8 [mysqld] 三、重启后使用第一步的命令查看,如下: 四、输入命令:set names utf8; 重启后,使用第一步命令查看: +--------------------------+------------------------------------------------+ 除了character_set_filesystem是binary外,其他都是utf8了, 这样在web端也设置成utf8编码就可以正常输入数据库了。 |