关于mysql中文插入 问号??问题的解决方法!

时间:2021-11-17 06:31:25

关于mysql中文插入 问号??问题的解决方法!

  1. 数据库安装的时候会让你选择未来创建库的时候用什么默认字符集,当 然这个当初不记得也没有关系

  2. 我们也可以自己修改
    MySql安装目录下面的my.ini(MySQL Server Instance Configuration 文件)。 设置 default-character-set=gbk(注意,有2处[mysql]和[mysqld])

    [mysql]

    default-character-set=gbk
    [mysqld]


    # The TCP/IP Port the MySQL Server will listen on

    port=3306



    #Path to installation directory. All paths are usually resolved relative to this.

    basedir="D:/Develop/MySQL/MySQL Server 5.0/"


    #Path to the database root

    datadir="D:/Develop/MySQL/MySQL Server 5.0/Data/"


    # The default character set that will be used when a new schema or table is


    # created and no character set is defined

    default-character-set=gbk


    # The default storage engine that will be used when create new tables when

    default-storage-engine=INNODB

    这里修改为utf8也可以,但一定要注意,如果你是用doc命令窗口插入数据,由于doc命令窗口和系统的字符集保持一致,中文系统是gbk,那么向表中存入数据就会乱码了

  3. 修改以上的信息后重启数据库服务,在计算机,管理,服务中
    关于mysql中文插入 问号??问题的解决方法!

  4. 之后通过doc打开你的数据库,查看数据库字符集即可查看,下列查看语句
    关于mysql中文插入 问号??问题的解决方法!
    红色标记的位置是我们主要修改的位置

  5. 你也可以通过下列语句查看你所创建的数据库和表的字符集

    1、查看数据库字符集:
    show create database mydbname;
    更改数据库字符集:
    alter database mydbname default character set utf8;
    2、查看数据库表的字符集:
    show create table mytable;
    更改数据库表的字符集:
    alter table mytable default character set utf8;
  6. 上述的方法是解决mysql不能存中文的问题,如果你没有这些操作,那么存入中文总会报异常
    Data truncation: Data too long for column
    但实际上,有些人发现,中文数据是能存入的,但中文部分全部显示???

  7. 关键!下面我们来说明,能存入中文,但是显示???问号的问题
    其实答案很简单,这种情况通常是你已经创建的数据库和表并不是默认字符集
    即使你按照1-5的做法完成了设置,但是你之前使用mysql所创建的数据库和表,根本不是gbk的,而还是更改之前的默认字符集,你可以通过5的语句查询验证是否这样,如果是这样,那么很简单,删了重新创建,那么再次存入的数据就能正常显示了
    关于mysql中文插入 问号??问题的解决方法!