zoukankan      html  css  js  c++  java
  • linux下怎么修改mysql的字符集编码

    安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件;由于linux下MySQL的默认安装目录分布在不同的文件下;不像windows一样放在同一目录下,只需修改其中的my.ini文件,重起后就生效了;所以先来看看linux下MySQL的数据库文件、配置文件和命令文件分别在不同的目录 :
    1、数据库目录,其所创建的数据库文件都在该目录下
      /var/lib/mysql/

       2、配置文件 (mysql.server命令及配置文件所在地)
      /usr/share/mysql

       3、相关命令(如mysql mysqladmin等)
      /usr/bin

       4、启动脚本(如mysql启动命令)
      /etc/rc.d/init.d/

    查看默认字符集
    #mysql -u root - p
    #(输入密码)
    mysql> show variables like 'character_set%' ;//或者是status
    +--------------------------+----------------------------+
    | 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/ |
    +--------------------------+----------------------------+
    修改字符集 :
    1.查找/etc目录下是否有my.cnf文件;
    #ls -l | grep my.cnf (在/etc下查找是否有my.cnf文件存在)
    2.如果没有就要从/usr/share/mysql,拷贝一个到/etc 下,在/usr/share/mysql目录下有五个后缀为.cnf的文件,分别是 my-huge.cnf my-innodb-heavy-4G.cnf my-large.cnf my-medium.cnf my-small.cnf ;从中随便拷贝一个到/etc目录下并将其改为my.cnf文件,我选择的是my-medium.cnf :
    #cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
    3.修改my.cnf文件,在该文件中的三个地方加上 default-character-set=utf8([client] [mysqld] [mysql])
    #vi /etc/my.cnf
    修改如下:(红色为添加部分)
    [client]
    #password = your_password
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    default-character-set=utf8
    [mysqld]
    port = 3306
    socket = /var/lib/mysql/mysql.sock
    skip-locking
    key_buffer = 16M
    max_allowed_packet = 1M
    table_cache = 64
    sort_buffer_size = 512K
    net_buffer_length = 8K
    read_buffer_size = 256K
    read_rnd_buffer_size = 512K
    myisam_sort_buffer_size = 8M
    default-character-set=utf8
    init_connect='SET NAMES utf8' //此行可不加

    [mysql]
    no-auto-rehash
    default-character-set=utf8
    保存退出;
    4.重起MySQL服务器,使其设置的内容生效
    #/etc/init.d/mysql restart
    5. 重新登入mysql;
    # mysql -u root - p
    #(输入密码)
    mysql> show variables like 'character_set%' ;
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |(都生成了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/ |
    +--------------------------+----------------------------+

    mysql启动和停止 操作 :
    可以通过 #/etc/init.d/mysql [start | stop | restart](实现启动,停止,重启)
    也可以通过 #service mysql [start | stop | restart](实现启动,停止,重启)
    *********************************
    另外:如果在修改字符集前,尝试在数据库中插入中文,那么当修改了字符集后,在你所插入中文的数据库中(在别的数据库中可能没问题),
    通过show variables like 'character_set%'查询的结果可如下:
    +--------------------------+----------------------------+
    | Variable_name | Value |
    +--------------------------+----------------------------+
    | character_set_client | utf8 |
    | character_set_connection | utf8 |
    | character_set_database | latin1 |
    | character_set_filesystem | binary |
    | character_set_results | utf8 |
    | character_set_server | utf8 |
    | character_set_system | utf8 |
    | character_sets_dir | /usr/share/mysql/charsets/ |
    +--------------------------+----------------------------+
    如图,character_set_database仍然会为latin1,我采取的办法是先导出该数据库中数据,如果数据不重要,则可drop此数据库,
    然后再重新create一个数据库。
    倘若不行的话,可以用命令行的形式

    通过MySQL命令行修改:

    mysql> set character_set_client=utf8;Query OK, 0 rows affected (0.00 sec)

    mysql> set character_set_connection=utf8;
    Query OK, 0 rows affected (0.00 sec)

    mysql> set character_set_database=utf8;
    Query OK, 0 rows affected (0.00 sec)

    mysql> set character_set_results=utf8;
    Query OK, 0 rows affected (0.00 sec)

    mysql> set character_set_server=utf8;
    Query OK, 0 rows affected (0.00 sec)

    mysql> set character_set_system=utf8;
    Query OK, 0 rows affected (0.01 sec)

    mysql> set collation_connection=utf8;
    Query OK, 0 rows affected (0.01 sec)

    mysql> set collation_database=utf8;
    Query OK, 0 rows affected (0.01 sec)

    mysql> set collation_server=utf8;
    Query OK, 0 rows affected (0.01 sec)


    查看:
    mysql> show variables like 'character_set_%';
    +--------------------------+----------------------------+
    | 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/ |
    +--------------------------+----------------------------+
    8 rows in set (0.03 sec)

    mysql> show variables like 'collation_%';
    +----------------------+-----------------+
    | Variable_name        | Value           |
    +----------------------+-----------------+
    | collation_connection | utf8_general_ci |
    | collation_database   | utf8_general_ci |
    | collation_server     | utf8_general_ci |
    +----------------------+-----------------+
    3 rows in set (0.04 sec)



  • 相关阅读:
    css3 可穿透的盒子标签属性 pointer-events
    Visual Basic 6.0精简版下载地址
    VB实现七彩过渡渐变色效果
    ExcelVBA联考中学校自动分配
    VB经典的推箱子小游戏源程序
    坦克大战小游戏源程序
    扫雷初级版V1.0源程序
    班级随机点名程序
    VB弹力球源程序
    老师如何听课和评课?4个维度、20个观察视角、68个观察点!
  • 原文地址:https://www.cnblogs.com/yaomajor/p/5711388.html
Copyright © 2011-2022 走看看