精华内容
下载资源
问答
  • MySQL 修改表字符集如果在应用开始阶段没有正确的设置字符集,运行一段时间后发现不能满足要求,想要调整字符集但又不想丢弃原有的数据,怎么办呢?现我们修改 test数据库下的 t1表,把 t1表原有latin1字符集的数据...

    MySQL 修改表字符集

    如果在应用开始阶段没有正确的设置字符集,运行一段时间后发现不能满足要求,想要调整字符集但又不想丢弃原有的数据,怎么办呢?

    现我们修改 test数据库下的 t1表,把 t1表原有latin1字符集的数据表修改成gbk字符集的过程:

    1.导出test用户的表结构

    [root@testdb ~]# mysqldump -uroot -p --default-character-set=gbk -d

    test > create_t1.sql

    --default-character-set=gbk 表示设置以什么字符集连接,-d 表示只导出表结构,不包含数据

    2.手工修改create_t1.sql中表结构定义中的字符集为新的GBK字符集

    3.确保记录不再更新,导出所有记录

    mysqldump -uroot -p --quick --no-create-info --extended-insert

    --default-character-set=latin1 test >

    data_t1.sql

    --quick 转储大表,一次一行地检索表中的行而不是检索所有行,并在输出前缓存在内存中

    --no-create-info 不写重新创建每个转储表的create table语句

    --extended-insert 使用包括几个values列表的多行insert语法,使转储文件更小,加速插入

    --default-character-set=latin1 按照原有的字符集导出所有数据,保证中文可见,不会保存成乱码

    4.打开data_t1.sql,将SET NAMES latin1修改成SET NAMES gbk;

    5.使用新的字符集GBK创建新的数据库

    mysql> create database test_gbk default charset

    gbk;

    6.创建表,执行createtab.sql

    [root@testdb ~]# mysql -uroot -p test_gbk <

    create_t1.sql

    7.导入数据,执行data.sql

    [root@testdb ~]# mysql -uroot -p test_gbk <

    data_t1.sql

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

    还有一种方法比较简单

    mysqldump -uroot -p --quick --extended-insert

    --default-character-set=latin1 test >

    data_t1.sql

    1.打开data_t1.sql,将SET NAMES latin1修改成SET NAMES gbk;

    2.找到表结构中DEFAULT CHARSET, 修改成DEFAULT CHARSET=gbk;

    [root@testdb ~]# mysql -uroot -p test <

    data_t1.sql

    进入mysql中 set names gbk;

    ok!!!

    展开全文
  • ALTER TABLE logtest CONVERT TO ...修改数据库字符集:代码如下:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];把默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字...

    ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    修改数据库字符集:

    代码如下:

    ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];

    把表默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集

    代码如下:

    ALTER TABLE tbl_name CONVERT TO CHARACTER SET character_name [COLLATE ...]

    如:ALTER TABLE logtest CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

    只是修改表的默认字符集:

    代码如下:

    ALTER TABLE tbl_name DEFAULT CHARACTER SET character_name [COLLATE...];

    如:ALTER TABLE logtest DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

    修改字段的字符集:

    代码如下:

    ALTER TABLE tbl_name CHANGE c_name c_name CHARACTER SET character_name [COLLATE ...];

    如:ALTER TABLE logtest CHANGE title title VARCHAR(100) CHARACTER SET utf8 COLLATE utf8_general_ci;

    查看数据库编码:

    代码如下:

    SHOW CREATE DATABASE db_name;

    查看表编码:

    代码如下:

    SHOW CREATE TABLE tbl_name;

    查看字段编码:

    代码如下:

    SHOW FULL COLUMNS FROM tbl_name;

    修改mysql表的字符集

    标签:查看   str   数据库   tab   set   hang   代码   arch   utf8

    本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

    本文系统来源:http://www.cnblogs.com/zhqBlog/p/6849088.html

    展开全文
  • 方法/步骤1、首先,找到Navicat并打开它,我这里使用的数据库是Musql,我就以Mysql为您讲解2、进入Navicat后,连接...5、您可以看一下,您当前的数据字符集是不是您所需要的,如下图所示6、如果不是,那么您可...

    方法/步骤

    1、首先,找到Navicat并打开它,我这里使用的数据库是Musql,我就以Mysql为您讲解

    258e32458bcc066b58ee0267da178f0f.png

    2、进入Navicat后,连接数据库。将鼠标放到需要连接的数据库上,直接双击鼠标即可快速连接。

    704f8d2df2e14b1068b355d01e3c0944.png

    3、连接成功后,选择表,选择“设计表”。如下图所示:

    41c70d394ee0170d230a7f9960522db8.png

    4、进入到数据表中,您可以看到您的每一个字段类型及其字符集。

    ef04650a4932cdbf8f73ca3331a3f5d3.png

    5、您可以看一下,您当前的数据表的字符集是不是您所需要的,如下图所示

    2327b7ec73a02786d372a9aaf1833850.png

    6、如果不是,那么您可以点击修改到您所需要的字符集。

    0ed2c90eadd6b36ac0215da721d198a7.png

    说明

    1、因为数据库的字符集不同,要是写入的方式不对,就会引起乱码或是无法写入的情况,通过这种方式也是可以解决写入再次出现乱码的方式,前提是写入的时候所使用的字符集与存储的字符集完全是一样的。

    f0805de6b0699c1019290a3235567fe0.png

    2、因为UTF8是比较常用的,如果您不太清楚您的数据库中未来要使用来存储什么语言的,那么utf8是比较适合使用的。

    62972927fc4d95fc374828849461105b.png

    3、当然,如果数据只是存储中文的话,使用gbk也是可以的。完全可以达到效果。

    64e80d707224dc1c6abbd485d6c7037a.png

    备注

    1、以上既是修改字符集的方式,推荐还是在创建数据库的时候,就将字符集先设置后,后来再修改的话,会比较麻烦些。

    2、后来修改数据库字符集,可以能让之前的数据变得不正常,修改的时候需要注意一下已经保存的数据。

    d59584ee4656cd0373807d3f6ca73df1.png

    END

    展开全文
  • 数据字符集修改步骤:对于已有的数据库想修改字符集不能直接通过 "alter database character set *"或 "alter table tablename character set *",这两个命令都没有更新已有记录的字符集,而只是对新创建的或者...

    数据字符集修改步骤:

    对于已有的数据库想修改字符集不能直接通过 "alter database character set *"或 "alter table tablename character set *",这两个命令都没有更新已有记录的字符集,而只是对新创建的表或者记录生效。 已经有记录的字符集的调整,必须先将数据导出,经过修改字符集后重新导入后才可完成。 修改数据库默认编码: alter database [your db name] charset [your character setting]

    下面模拟将latin1字符集的数据修改成GBK字符集的实际过程。

    1、导出表结构 [root@master ~]# /opt/mysql/bin/mysqldump --default-character-set=latin1  -uroot -p -d dbname > alltable.sql

    2、编辑alltable.sql将latin1改成GBK

    3、确保数据库不再更新,导出所有数据 [root@master ~]# /opt/mysql/bin/mysqldump -uroot -p --quick --no-create-info --extended-insert --default-character-set=latin1 dbname > alldata.sql

    参数说明: --quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有行,并输出前CACHE到内存中。

    --no-create-info:不创建CREATE TABLE语句。

    --extended-insert:使用包括几个VALUES列表的多行INSERT语法,这样你更小,IO也小,导入数据时会非常快。

    --default-character-set=latin1:按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码。

    4、打开alldata.sql将set names latin1修改成set names gbk;

    5、删库和建库: create database dbname default charset gbk;

    6、创建表,执行alltable.sql mysql -uroot -p dbname < alltable.sql

    7、导入数据 mysql -uroot -p dbname < alldata.sql 注意:选择目标字符集时,要注意最好大于等于源字符集(字库更大),否则,可能会丢失不被支持的数据。

    具体操作如下:

    更改前的数据:[root@master mysql]# mysql -uroot -p123456 -e "show create database oldboy\G;show create table oldboy.student\G;set names latin1;select * fromoldboy.student;\G"

    Warning: Using a passwordonthe command line interface can be insecure.*************************** 1. row ***************************

    Database: oldboyCreate Database: CREATE DATABASE `oldboy` /*!40100 DEFAULT CHARACTER SET latin1*/

    *************************** 1. row ***************************

    Table: studentCreate Table: CREATE TABLE`student` (

    `id`int(4) NOT NULLAUTO_INCREMENT,

    `name`char(20) NOT NULL,PRIMARY KEY(`id`)

    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1+----+-----------+

    | id | name |

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

    | 1 | oldboy |

    | 2 | oldgirl |

    | 3 | inca |

    | 4 | zuma |

    | 5 | kaka |

    | 6 | ??? |

    | 7 | 老男孩 |

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

    导出表结构:[root@master mysql]# /opt/mysql/bin/mysqldump --default-character-set=latin1 -uroot -p -d oldboy > zhulh/alltable.sql

    查看导出内容:[root@master mysql]# grep -E -v "#|\/|^$|--" zhulh/alltable.sql

    DROP TABLE IF EXISTS`error_log`;CREATE TABLE`error_log` (

    `error_message`char(80) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1;DROP TABLE IF EXISTS`student`;CREATE TABLE`student` (

    `id`int(4) NOT NULLAUTO_INCREMENT,

    `name`char(20) NOT NULL,PRIMARY KEY(`id`)

    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;DROP TABLE IF EXISTS`t2`;CREATE TABLE`t2` (

    `s1`int(11) NOT NULL,PRIMARY KEY(`s1`)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;DROP TABLE IF EXISTS`t3`;CREATE TABLE`t3` (

    `s1`int(11) DEFAULT NULL,KEY`s1` (`s1`),CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`s1`) REFERENCES`t2` (`s1`)

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

    修改latin1为utf8:[root@master mysql]# sed -i "s/latin1/utf8/" zhulh/alltable.sql[root@master mysql]# grep -E -v "#|\/|^$|--" zhulh/alltable.sql

    DROP TABLE IF EXISTS`error_log`;CREATE TABLE`error_log` (

    `error_message`char(80) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS`student`;CREATE TABLE`student` (

    `id`int(4) NOT NULLAUTO_INCREMENT,

    `name`char(20) NOT NULL,PRIMARY KEY(`id`)

    ) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS`t2`;CREATE TABLE`t2` (

    `s1`int(11) NOT NULL,PRIMARY KEY(`s1`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;DROP TABLE IF EXISTS`t3`;CREATE TABLE`t3` (

    `s1`int(11) DEFAULT NULL,KEY`s1` (`s1`),CONSTRAINT `t3_ibfk_1` FOREIGN KEY (`s1`) REFERENCES`t2` (`s1`)

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    确保数据库不再更新,导出所有数据[root@master mysql]# /opt/mysql/bin/mysqldump --default-character-set=latin1 --quick --no-create-info --extended-insert -uroot -p -B oldboy > zhulh/alldata.sql

    修改latin1为utf8:(将SET NAMES latin1 修改成SET NAMES utf8)[root@master mysql]# sed -i "s/latin1/utf8/" zhulh/alldata.sql

    删除老库:

    root@mysql5.6 01:09:24->drop databaseoldboy;

    Query OK,4 rows affected (0.20sec)

    新建新库:

    root@mysql5.6 01:12:53->create database oldboy defaultcharset utf8;

    Query OK,1 row affected (0.00sec)

    导入数据:[root@master mysql]# mysql -uroot -p123456 oldboy < zhulh/alltable.sql

    Warning: Using a passwordonthe command line interface can be insecure.[root@master mysql]# mysql -uroot -p123456 oldboy < zhulh/alldata.sql

    Warning: Using a passwordonthe command line interface can be insecure.[root@master mysql]# mysql -uroot -p123456 -e "select * fromoldboy.student;"

    Warning: Using a passwordonthe command line interface can be insecure.+----+-----------+

    | id | name |

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

    | 1 | oldboy |

    | 2 | oldgirl |

    | 3 | inca |

    | 4 | zuma |

    | 5 | kaka |

    | 6 | ??? |

    | 7 | 老男孩 |

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

    [root@master mysql]#

    展开全文
  • 表字符集 < 列字符集; 也就是 上面三个级别 字符集不一致时,以 更小范围的配置为准; 例如:数据库字符集为utf8 表字符集不设置的情况下 会默认 utf8 ,如果表主动设置了编码 utf8mb4;那么表的字符集编码就...
  • 问题MySQL官方网站提供了诸多免费的数据库...操作中,我们经常遇到字符集修改不匹配的问题。例如,MySQL方默认的表字段字符集很可能是latin5_turkish_ci,此时想往中插入数据就会遇到类似以下的错误提示:[UPDAT...
  • 包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • 使用MySQL Workbench修改表字符集

    千次阅读 2018-05-09 07:54:00
    问题 MySQL官方网站提供了诸多免费的数据库...操作中,我们经常遇到字符集修改不匹配的问题。例如,MySQL方默认的表字段字符集很可能是latin5_turkish_ci,此时想往中插入数据就会遇到类似以下的错误提示: [UP...
  • 包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • mysql修改表字符集

    2015-02-14 11:46:00
    两张都drop成功,然后再修改导出文件中建表的字符集为utf8,再按顺序导入两张的结构及记录即可(被依赖的要先导噢) source /home/logistics/logistics_express_trajectory.sql; source /home/logistics...
  • 一、描述与分析 对于已有数据的要更改字符集,是不能直接通过”alter database character set…” or“alter tabletable name charact...
  • mysql查询所有表,并修改表字符集

    千次阅读 2018-09-05 23:14:42
    1.查询所有 ALTER TABLE tbl_name CONVERT TO CHARACTER SET charset_name; 2.拼接sql select concat('ALTER TABLE ',table_name,' CONVERT TO CHARACTER SET utf8;') from information_schema.tables where ...
  • 二、无法往Navicat中插入中文问题:文件-新建链接把之前的连接删除,然后在上面【链接】图标点下新建链接在“连接属性”的设置中,高级-“使用mysql字符集”去掉,并且将编码改为10008-GB2312中文字符集就OK了MYSQL中...
  • 然后把表名拼接到修改表字符集的语句中;最后复制这些语句执行即可。批量修改mysql表字符集的方法:更改表编码(字符集):ALTER TABLE TABLE_NAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;如果一...
  • 包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • 包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • 一、修改my.ini配置文件(mysql配置文件)character_set_server = utf8 #设置字符集重启mysql数据库服务查看当前数据库字符集show VARIABLES like 'character%';二、修改数据库字符集alter ...三、修改表字符集ALT...
  • 第一种一、修改my.ini配置文件(MySQL配置文件)character_set_server = utf8 #设置字符集查看当前数据库字符集show VARIABLES like 'character%';二、修改数据库字符集alter database...三、修改表字符集ALTER TABLE ...
  • 修改数据库字符集 旧表字符集不变 alterdatabaseowldefaultcharactersetutf8; 修改表字符集 altertablet_appcharactersetutf8; 转换表所有列字符集和默认字符集 altertablet_appc...
  • 修改数据库字符集:ALTER DATABASE db_name DEFAULT CHARACTER SET character_name [COLLATE ...];把默认的字符集和所有字符列(CHAR,VARCHAR,TEXT)改为新的字符集:ALTER TABLE tbl_name CONVERT TO CHARACTER SET...
  • 包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字符集等。一、查看 MySQL 数据库服务器和数据库字符集。mysql> show variables like '%char...
  • 针对以下修改表字符集的行为做个记录 ALTER TABLE tbl_name DEFAULT CHARACTER SET charset_name; 实验过程 The word DEFAULT is optional. The default character set is the character set...
  • 下面就为您详细介绍已用数据的Mysql字符集修改方法,希望对您学习Mysql字符集方面能有所启迪。环境:在应用开始阶段没有正确的设置字符集,在运行一段时间以后才发现存在不能满足需求需要调整,又不想丢弃这段时间...
  • 修改数据库:查看当前数据库字符集show VARIABLES like 'character%';修改数据库字符集alter database 数据库名 character set utf8;ps:修改完数据库字符集,需要重启mysql数据库。修改表单条SQL:ALTER TABLE `cmf_...
  • MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL ...包括查看 MySQL 数据库服务器字符集、查看 MySQL 数据库字符集,以及数据和字段的字符集、当前安装的 MySQL 所支持的字...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,761
精华内容 1,104
关键字:

修改表字符集