MySQL(1)--修改字符编码

最近在部署MySQL,遇到了字符编码问题,这篇文章是一些主要是解决关于数据库支持中文的编码的问题。当然,可以选择GBK等编码,不过更好的选择当然是选择国际通用的utf-8编码。下面是一些将数据库编码改为utf-8编码的方法。


更改数据库编码

一般都想修改整个数据库使用的编码,就是更改数据库的编码,首先可以先查询当前数据库所有的字符的编码:

mysql> show variables like 'character%';

默认的查询结果可能是这样的:

+--------------------------+----------------------------+
| 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     | latin1                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

也就是默认的是latin1编码,是不支持中文的。所以我们应该将数据库的编码改成utf-8,在数据库中是utf8
我们可以选择更改数据库的配置文件my.cnf,然后将数据库服务重启才能生效,通常需要更改my.cnf的这两个地方。

  • [client]下,加上default-character-set=utf8,或者是character-set-client=utf8
  • [mysqld]下,加上character-set-server=utf8

当然,亲测这个方法或许还是不能把所有的编码改成utf8,或许还应该吧其他几个参数也加上character-set-client=utf8,不过没有试过。不过还有一种方式,如果需要把以上全改成utf8,可以通过命令行更改,但据说用命令行更改的编码如果MySQL重启就没用了。暂时未测,可以根据实际情况选择方法,以下贴出命令行方式:

mysql> set character_set_client=utf8 ;

mysql> set character_set_connection=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_database=utf8 ;

mysql> set character_set_results=utf8 ;

mysql> set character_set_server=utf8 ;

mysql> set character_set_system=utf8 ;

之后再用上文说的查询数据库方式再次查询数据库的编码,就会得到如下结果:

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

就将所有的编码改成utf8了。


MySQL命令行修改数据库编码

现在,写一些其他的命令行修改编码的方式:

  • 修改数据库字符编码(某个数据database)
    • mysql> alter database 数据库名 character set utf8 ;
  • 在创建数据库时,指定数据库的指定字符编码
    • mysql> create database 数据库名 character set utf8 ;
  • 修改数据库中某个table 的编码
    • mysql> alter table table名 character set utf8 ;

添加几个常用的数据库使用指令:

- 关闭数据库服务:```mysqladmin shutdown -uroot -p[password]```
- 启动数据库:`mysql -uroot -p[password]`

或者:

- 启动命令:`/etc/init.t/mysqld start`
- 连接数据库:`/etc/init.d/mysqld stop`

参考互联网知识,若有无意侵权请联系本人删除。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值