zoukankan      html  css  js  c++  java
  • MySQL字符集

    MySQL字符集的问题

    当查看数据是出现乱码该怎么处理?

    mysql> select * from book.books limit 5;
    +-----+-------------------------------------------------------+---------+--------------------------------------------------------------+-------+------------+-----------------------+------------+
    | bId | bName                                                 | bTypeId | publishing                                                   | price | pubDate    | author                | ISBN       |
    +-----+-------------------------------------------------------+---------+--------------------------------------------------------------+-------+------------+-----------------------+------------+
    |   1 | 网站制作直通车                                 | 2       | 电脑爱好者æ‚志社                                     |    34 | 2004-10-01 | 苗壮                | 7505380796 |
    |   2 | 黑客与网络安全                                 | 6       | 航空工业出版社                                        |    41 | 2002-07-01 | 白立超             | 7121010925 |
    |   3 | 网络程åºä¸Žè®¾è®¡ï¼asp                           | 2       | 北方交通大学出版社                                  |    43 | 2005-02-01 | 王玥                | 75053815x  |
    |   4 | pagemaker 7.0短期培训教程                       | 9       | 中国电力出版社                                        |    43 | 2005-01-01 | 孙利英             | 7121008947 |
    |   5 | 黑客攻击防范秘笈                              | 6       | 北京腾图电å­å‡ºç‰ˆç¤¾                                  |    44 | 2003-06-29 | 赵雷雨             | 7120000233 |
    +-----+-------------------------------------------------------+---------+--------------------------------------------------------------+-------+------------+-----------------------+------------+
    5 rows in set (0.00 sec)

    查看mysql数据库服务器和数据库mysql字符集:

    mysql> show variables like '%char%';  
    +--------------------------+----------------------------------+
    | 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/local/mysql/share/charsets/ |
    +--------------------------+----------------------------------+
    8 rows in set (0.00 sec)

    查看mysql数据列的字符集:

    mysql> show full columns from book.books;
    +------------+------------------------------------------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | Field      | Type                                           | Collation         | Null | Key | Default | Extra          | Privileges                      | Comment |
    +------------+------------------------------------------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    | bId        | int(4)                                         | NULL              | NO   | PRI | NULL    | auto_increment | select,insert,update,references |         |
    | bName      | varchar(255)                                   | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    | bTypeId    | enum('1','2','3','4','5','6','7','8','9','10') | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    | publishing | varchar(255)                                   | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    | price      | int(4)                                         | NULL              | YES  |     | NULL    |                | select,insert,update,references |         |
    | pubDate    | date                                           | NULL              | YES  |     | NULL    |                | select,insert,update,references |         |
    | author     | varchar(30)                                    | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    | ISBN       | varchar(255)                                   | latin1_swedish_ci | YES  |     | NULL    |                | select,insert,update,references |         |
    +------------+------------------------------------------------+-------------------+------+-----+---------+----------------+---------------------------------+---------+
    8 rows in set (0.00 sec)

    查看创建表时的字符集:

    mysql> show create table book.books;
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | Table | Create Table                                                                                                                                                                                                                                                                                                                                                                                                                                 |
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    | books | CREATE TABLE `books` (
      `bId` int(4) NOT NULL AUTO_INCREMENT,
      `bName` varchar(255) DEFAULT NULL,
      `bTypeId` enum('1','2','3','4','5','6','7','8','9','10') DEFAULT NULL,
      `publishing` varchar(255) DEFAULT NULL,
      `price` int(4) DEFAULT NULL,
      `pubDate` date DEFAULT NULL,
      `author` varchar(30) DEFAULT NULL,
      `ISBN` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`bId`)
    ) ENGINE=MyISAM AUTO_INCREMENT=45 DEFAULT CHARSET=latin1 |
    +-------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    数据库默认的字符集和表的字符集不一致,导致数据乱码。

    解决办法:

    把数据的字符集该为数据库默认的字符集就可以了。

    导出表结构:

    [root@tiandong ~]# mysqldump -uroot -p123456 --default-character-set=latin1 -d book > book2.sql --default-character-set=utf8

    导出数据:

    [root@tiandong ~]# mysqldump -uroot -p123456 --quick --no-create-info --extended-insert --default-character-set=latin1 book > bookdata.sql

    修改下面两个文件的字符集

    [root@tiandong ~]# ll -trl |tail -n 2
    -rw-r--r--  1 root root  2355 Oct 14 14:03 book2.sql


    -rw-r--r--  1 root root  6444 Oct 14 14:12 bookdata.sql

    创建一个新库book2,然后把数据导入:

    mysql> create database book2;
    [root@tiandong ~]# mysql -uroot -p123456 book2< book2.sql
    [root@tiandong ~]# mysql -uroot -p123456 book2< bookdata.sql
    然后再次查看:

    mysql> select * from books limit 5;
    +-----+---------------------------------+---------+-----------------------------+-------+------------+-----------+------------+
    | bId | bName                           | bTypeId | publishing                  | price | pubDate    | author    | ISBN       |
    +-----+---------------------------------+---------+-----------------------------+-------+------------+-----------+------------+
    |   1 | 网站制作直通车                  | 2       | 电脑爱好者杂志社            |    34 | 2004-10-01 | 苗壮      | 7505380796 |
    |   2 | 黑客与网络安全                  | 6       | 航空工业出版社              |    41 | 2002-07-01 | 白立超    | 7121010925 |
    |   3 | 网络程序与设计-asp             | 2       | 北方交通大学出版社          |    43 | 2005-02-01 | 王玥      | 75053815x  |
    |   4 | pagemaker 7.0短期培训教程       | 9       | 中国电力出版社              |    43 | 2005-01-01 | 孙利英    | 7121008947 |
    |   5 | 黑客攻击防范秘笈                | 6       | 北京腾图电子出版社          |    44 | 2003-06-29 | 赵雷雨    | 7120000233 |
    +-----+---------------------------------+---------+-----------------------------+-------+------------+-----------+------------+
    5 rows in set (0.00 sec)
    此时数据护肤正常了。

  • 相关阅读:
    VB程序逆向反汇编常见的函数(修改版)
    [反汇编练习] 160个CrackMe之009
    [反汇编练习] 160个CrackMe之008
    [反汇编练习] 160个CrackMe之007
    [反汇编练习] 160个CrackMe之006
    Delphi反汇编内部字符串处理函数/过程不完全列表
    [反汇编练习] 160个CrackMe之005
    [反汇编练习] 160个CrackMe之004
    新建Django配置
    mysql 常用命令大全
  • 原文地址:https://www.cnblogs.com/winter1519/p/9786369.html
Copyright © 2011-2022 走看看