• 设置Mysql数据库的默认编码为utf8



    设置Mysql数据库的默认编码为utf8

    sunny 分享于 26 天 前, 2 条回复, 104 次浏览

    mysql的默认编码为latin1,存储中文时总会出现乱码,每次改过了,下次又忘了该怎么配,把它记录下来,也分享给各位。

    进入mysql,查看默认编码:

    $ mysql -uroot -proot
    
    $ 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 | utf8 |
    
    | character_sets_dir | /usr/share/mysql/charsets/ |
    
    +--------------------------+----------------------------+

    现暂停mysql服务:

    $sudo /etc/init.d/mysql stop

    修改 /etc/mysql/my.cnf

    $ sudo chmod 777 /etc/mysql/my.cnf
    
    $ vim /etc/mysql/my.cnf

    client下面加上:

    default-character-set=utf8

    mysqld下面加上:

    default-character-set=utf8
    
    init_connect='SET NAMES utf8'

    保存,退出wq

    重启mysql服务:

    $sudo /etc/init.d/mysql start

    发现出错:

    Warning: World-writable config file '/etc/mysql/my.cnf' is ignored
    
    /usr/bin/mysqladmin: connect to server at 'localhost' failed
    
    error: 'Access denied for user 'luoping'@'localhost' (using password: NO)'

    原因为:/etc/mysql/my.cnf 权限太高,搜索了一番,有人说许改为600,但是我发觉不行,查看了/etc/mysql/文件夹里的其他文件,权限是755,所以修改权限

    $sudo chmod 755 /etc/mysql/my.cnf

    重启mysql服务,OK

    再次查看数据库编码

    $ mysql -uroot -proot
    
    $ show variables like character%'

    显示字符编码:

    +--------------------------+----------------------------+
    
    | 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/ |
    
    +--------------------------+----------------------------+

    回复 (2 条)

    • # 1 楼
      jerry 回复于 25 天 前

      貌似用windows的同学容易有这个数据库默认的编码问题。

    • # 2 楼
      aoner 回复于 20 天 前

      windows上更容易点吧,安装的时候有提示,可以自己选择编码,不用像linux安装完了在改配置文件

    添加回复

    1. 如果你还未注册, 请填写你的名字。

    2. 你可以实用以下html标签:

      <a href="" title=""> <b> <blockquote> <pre> <code> <em> <i> <strong>

      代码块请使用 <pre><code>...</code></pre>.


  • 相关阅读:
    nested exception is java.lang.IllegalStateException: No persistence units parsed from {classpath*:META-INF/persistence.xml}
    Thrift Expected protocol id ffffff82 but got 0
    idea
    Activity工作流入门之HelloWorld
    Thrift 入门之helloWorld
    Thrift入门之mac下的安装流程
    netty的解码器与粘包和拆包
    java反射(一)
    使用Spring报错:No default constructor found;
    jpa关联映射(一)
  • 原文地址:https://www.cnblogs.com/lexus/p/1902195.html
Copyright © 2020-2023  润新知