导入mysql时status改成1_MySQL学习笔记 - 字符编码

本文详细介绍了在Java环境下向MySQL5数据库插入和显示中文数据时遇到的字符集问题及其解决方案。主要步骤包括修改my.ini配置文件,设置数据库、客户端和连接的字符集,并在创建数据库和表时指定编码。同时,文章提供了查看MySQL字符集的命令以及解决乱码问题的方法。
摘要由CSDN通过智能技术生成

如何向mysql5数据库插入中文———— JAVA学习室(http://www.java3z.com)

向mysql5数据库正常插入中文,操作如下:

1.把字符集设定为能支持中文的gbk(在my.ini文件中改)

2.把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk;

SET character_set_client=gbk;

SET character_set_connection=gbk;

之后再尝试向数据库插入中文,这时插入没有出错,但查询显示是乱码。最后再更改;

SET character_set_results=gbk;

这样之后,所有的问题都解决了,能正常插入也能正常显示了。

如果还不正常,可以在创建数据库时指定编码gbk, 如下所示

(1)create database if not exists test default character set gbk;

注意:有些人可能会问,建立数据库表时候还没设置编码呢?其实,如果你容器编码是gbk的,则表也是gbk,如下设置表编码为gbk:

CREATE TABLE IF NOT EXISTS test(

test_id int auto_increment,

test_name varchar(50)

) ENGINE=InnoDB DEFAULT CHARSET=gbk;

(2)连接设置编码为gbk

dao.drivername=com.mysql.jdbc.Driver

dao.url=jdbc:mysql://localhost:3306/asking?useUnicode=true&characterEncoding=gbk

dao.username=

dao.passwd=

MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,下面汇总了有关查看 MySQL 字符集的命令。包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据表和字段的字符集、当前安装的 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            | D:\MySQL\share\charsets\ |......

+--------------------------+---------------------------------

二、查看 MySQL 数据表(table)的字符集。

mysql> show table status from java3z_chinajsp like '%article%';(article为表名)

三、查看 MySQL 数据列(column)的字符集。

mysql> show full columns from article;

四、查看当前安装的 MySQL 所支持的字符集。

mysql> show char set; //charset, or character set

五、通过MySQL命令行修改字符集:

mysql> set character_set_client=utf8;

mysql> set character_set_connection=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;

mysql> set collation_connection=utf8;

mysql> set collation_database=utf8;

mysql> set collation_server=utf8;

要想知道远程主机上mysql服务器使用的字符集,可先连接到远程主机上的MYSQL。

假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:

mysql -h110.110.110.110 -u root -p abce123;(注:u与root之间可以不用加空格)

退出MYSQL命令:exit(回车)

MySQL正常插入并显示中文数据需满足的条件—— 网易博客

MySQL数据库默认编码已经是utf8了, default-character-set = utf8,可是向数据库中表中插入中文时,却老是出现 ....\xB5\xA5\xD1\xA1 for column...这样的错误,经过查阅网上类型的错误后,发现一个很奇妙的现象,接下来我们就来开始介绍。

一、在安装数据库时就设定字符集编码为utf8的环境下

在当前字符集编码为:

Server characterset: utf8

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

创建数据库:

(1)插入中文数据,操作不能成功。

(2)修改字符集编码为:

Server characterset: utf8

Db characterset: utf8

Client characterset: gbk

Conn. characterset: gbk

插入中文数据,显示正常。

二、在安装数据库时就设定字符集编码为gbk的环境下

1. 当前字符集编码是:

Server characterset: gbk

Db characterset: gbk

Client characterset: gbk

Conn. characterset: gbk

创建数据,插入中文数据,操作正常,显示正常。

2. 当前字符集编码为utf8:

Server characterset: gbk

Db characterset: utf8

Client characterset: utf8

Conn. characterset: utf8

3. 当前字符集编码为utf8:

Server characterset: gbk

Db characterset: gbk

Client characterset: utf8

Conn. characterset: utf8

插入中文数据,操作不能执行。

结论:向数据库正常插入中文,必须满足以下条件:

1. 要把字符集设定为能支持中文的gbk或则utf8;

2. 把数据库的Client Characterset和Conn. Characterset的字符集都设定为gbk;

根据上面的提示 ,我更改了:

SET character_set_client=gbk;

SET character_set_connection=gbk;

之后再尝试想数据库插入中文,这时没有出错,能插入可是查询出来是乱码。

最后再更改;

SET character_set_results=gbk;

这样之后,所有的问题都解决了,能正常插入也能正常显示了。

关于MySQL数据库正常插入中文数据并能正常显示的条件就介绍到这里,希望通过本次的介绍能够带给您一些收获吧!

修改mysql数据库编码—————— www.cnblogs.com

修改my.ini文件,在其中添加:

default-character-set=gb2312

设置数据库字符集格式:

alter database da_name default character set 'charset'

1)设置数据库编码 /etc/my.cnf

[mysqld]

default-character-set=gbk

...

[client]

default-character-set=gbk

---------------------------------------

2)按字符集导出

$mysqldump -u root -p dbname --default-character-set=gbk > a.sql;

3)查看SQL文件的编码

> file a.sql

a.sql: UTF-8 Unicode ...

> iconv -f utf-8 -t gbk a.sql > a2.sql

> file a2.sql

a2.sql: Non-ISO extended-ASCII English text 这时已经是gbk的编码了

3)导入数据

查看数据库服务和客户端字符集

mysql> status;

Server characterset: gbk

Db characterset: gbk

Client characterset: latin1

Conn. characterset: latin1

mysql> set names 'gbk';

mysql> status;

Server characterset: gbk

Db characterset: gbk

Client characterset: gbk

Conn. characterset: gbk

这时才能导入数据

mysql> source a.sql;

----------------------------------------------------------------------------------

单独设置某个数据库:

alter database testdb character set ‘utf8’;

查看mysql支持的编码:

show character set;

查看系统的字符集:

SHOW VARIABLES LIKE ''character_set_%'';

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值