mysql 字符设置与修改

【知识性文章转载】
MYSQL 字符集问题


MySQL的字符集支持(Character Set Support)有两个方面:
字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。

但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?

(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;

(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;

简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用latin1 存储,

不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,

这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。


2.查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)
通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:

      mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| 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        | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+
mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name         | Value            |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database    | utf8_general_ci |
| collation_server      | utf8_general_ci |
+----------------------+-----------------+

3.修改默认字符集
(1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,

default-character-set = utf8
character_set_server = utf8
修改完后,重启mysql的服务,service mysql restart
使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8

+--------------------------+---------------------------------+
| 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-5.0.37"share"charsets" |
+--------------------------+---------------------------------+

(2) 还有一种修改字符集的方法,就是使用mysql的命令
mysql> SET character_set_client = utf8 ;



===================================================

其他的一些设置方法:

修改数据库的字符集
mysql>use mydb
mysql>alter database mydb character set utf-8;
创建数据库指定数据库的字符集
mysql>create database mydb character set utf-8;


通过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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/497745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度|机器学习到底能替人干哪些工作?《科学》列出了8条评估标准

来源: 机器人大讲堂对于AI会取代哪些人类工作的猜测,也许可以暂时停一停了。最近,两位来自MIT和CMU的研究者在一篇论文中提出了一种预测那些“脆弱“工作的方式。他们认为,机器学习并不代表人类工作的终结,但它会对经济…

南开大学计算机原理在线作业,南开大学20秋《计算机原理》在线作业-1(参考答案)...

计算机软件是指()。A.操作系统B.汇编程序C.用户程序D.所有程序及文档的统称查看答案参考答案8086微机系统的地址总线是()。A.8位B.16位C.20位D.32位查看答案参考答案单地址指令中为了完成两个数的算术运算,除地址码指明一个操作数外,另一个数采用()方式。…

2017影响世界的十大颠覆性技术 | 2018年改变世界的四大技术趋势

来源:本文转载自星河互联(ID:xinghehulian)概要:2017年即将过去,在这一年中出现了很多激动人心的技术进步,也出现了很多颠覆传统的初创企业。2017影响世界的十大颠覆性技术2017年即将过去&#…

#1130 - Host 'localhost' is not allowed to connect to this MySQL server

解决办法:1。 改表法。可能是你的帐号不容许从长途登岸,只能在localhost。这个时辰只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"…

链接网络计算机提示请检查名称,绝地求生高端辅助如果win7设置了共享文件提示“请检查名称拼写”怎么办...

win7开机提示“计算机中丢失ActiveDetect32.dll”解决方法最近有用户反映win7设置了共享文件提示“请检查名称拼写。否则,网络可能会有问题。尝试识别并解决网络问题。”怎么回事?由此可见,网络环境可能存在问题。为了解决这个问题&#xff0…

《自然》网站盘点2017年重大科技事件

来源:科技日报概要:近日,《自然》杂志网站为我们盘点了2017年重大科技事件,正是这些事件,塑造了2017年的面貌。从天上到人间,2017年注定是不平凡的一年。所谓“金风玉露一相逢,胜却人间无数”&a…

java调用存储过程同时获取[返回参数]和[结果集]

来源:http://blog.csdn.net/security08/article/details/5148586 执行以下代码,报错: String querySQL "{?call p_sys_manager_csReport(?,?,?,?,?)}"; cstmt conn.prepareCall(querySQL); cstmt.registerOutParameter(1,…

在计算机网络中软件资源共享是指,在计算机网络中,软件资源共享指的是什么...

在计算机领域,共享资源(shared resource)或网络共享(network share)是指使同一个计算机网络上的其他计算机可使用的某台计算机的计算机资源的行为。换而言之,是使计算机上的一种设备或某些信息可通过另一台计算机以局域网或内部网进行远程访问&#xff0…

如何用Python和深度神经网络识别图像?

来源:王树义科学网博客概要:只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨识和分类。快来试试吧!只需要10几行Python代码,你就能自己构建机器视觉模型,对图片做出准确辨…

在T-SQL语句中访问远程数据库(openrowset/opendatasource/openquery)

来源:http://www.cnblogs.com/OpenCoder/archive/2010/03/18/1689321.html 1、启用Ad Hoc Distributed Queries 在使用openrowset/opendatasource前搜先要启用Ad Hoc Distributed Queries服务,因为这个服务不安全所以SqlServer默认是关闭的 启用Ad Hoc…

单招湖南工业技术学院计算机难吗,解读湖南三一工业职业技术学院单招考试难吗...

走单招的竞争不会太激烈,因此学生们可以用不高的分数去一个比较好的专科学校。对于成绩不好的学生来说,选择单招的学生上大学的几率比较大。来我们了解一下解读湖南三一工业职业技术学院单招考试难吗什么是高职分类考试招生高职分类考试招生是普通高等教…

2017回顾:哪些领域被过度炒作,哪些领域又需要更多关注?

来源:全球创新论坛概要:不管是虚拟现实、增强现实,还是可穿戴设备,其炒作高峰似乎已经是明日黄花,已经是过去两年的事情,不知为何仍然排在炒作榜高位。不管是虚拟现实、增强现实,还是可穿戴设备…

重庆高职高专计算机排名,重庆十大大专排名(含分数线2021年参考)-重庆最好的全日制专科学校...

选择科目测一测我能上哪些大学选择科目领取你的专属报告>选择省份关闭请选择科目确定v>对于重庆考生来说,重庆专科院校的排名一直都是比较关注的话题。那么,本期圆梦志愿小编就带大家来了解一下“重庆十大大专排名及分数线”以及“重庆最好的大专全日制专科学…

无法初始化链接服务器 (null) 的 OLE DB 访问接口 Microsoft.Jet.OLEDB.4.0 的数据源对象。

SQL Server 与 Excel之间导数据时候执行SQL遇到问题 执行如下SQL语句 select * from openrowset(Microsoft.Jet.OLEDB.4.0,Excel 8.0;HDRYes;IMEX1;Databased:\sysuser.xlsx,[Sheet1$]) 提示错误: 第一步:保证Excel 文件与 SQL Server 数据库服务器在…

2018新年感谢,写在互联网类脑架构研究十年的前夜

概要:明天,是新的一年,也是我们研究互联网类脑架构,发表第一篇文章《互联网大脑进化示意图》正好10年的的日期。2018年1月1日,是新一年的第一天,也是我们研究互联网类脑架构,发表第一篇文章《互…

在SQL Server数据库之间进行数据导入导出

来源:http://kb.cnblogs.com/page/94464/ 在SQL Server数据库之间进行数据导入导出 (1).使用SELECT INTO导出数据 在SQL Server中使用最广泛的就是通过SELECT INTO语句导出数据,SELECT INTO语句同时具备两个功能: 1、根据SELECT后跟的字段…

中档微型计算机配置图,实训1-微机应用现状调研实训报告.docx

文档介绍:实训1微机应用现状调研实训报告实训内容实训要求1.微机硬件组成调研。2.市场主流微处理器信息搜集。3.主流内存信息搜集。4.微机操作系统应用调研。5.微机常用应用软件调研。6.用户对微机性能的关注程度调研。7.微机主要用途调研。通过市场的现场调研或互联…

计算机考研没奖,备战考研本科期间没有什么奖项,考研复试会有影响吗?

原标题:备战考研本科期间没有什么奖项,考研复试会有影响吗?考研复试是考研的最后阶段,因为复试采用的是差额复试,也就是进入复试人员大于拟录取人员。所以,复试还是有很大的竞争的。如何在复试中取得良好的…

HT中特殊字符φ的显示问题

HT中特殊字符φ如下才能正常显示 <text mode"1" size"1" x"1" y"9">名称:</text><text mode"1" size"1" x"6" y"9"><s:property escape"false" escapeXml&q…

2018年人工智能和机器学习路在何方?听听美国公司怎么做

来源&#xff1a;可译网翻译 | 言午二二、Amanda沈概要&#xff1a;与DevOps&#xff08;开发运营&#xff09;不同的是&#xff0c;它涉及到更多的人员和方法&#xff0c;因为新技术正在给商业管理战略带来变革。本文为美国著名数据分析网站DZone分析师Tom Smith与Exaptive的副…