Server characterset和Db characterset,这俩货之间神马关系?求知道:)

myy101 2012-12-24 07:47:50

Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.27 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1 // server charset 和 db charset有什么关系?
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8


Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.27 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1 // latin字符集不能输入中文么?
Client characterset: utf8
Conn. characterset: utf8

server charset可以修改么?
...全文
263 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ACMAIN_CHM 2012-12-25
  • 打赏
  • 举报
回复
latin输入中文后,数据库客户端显示乱码,这个时候修改表的编码类型,在客户端是否就能正常显示了呢? 建议详细阅读一下MYSQL官方免费文档中的介绍。 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx MySQL 中文显示乱码 看完再说吧,否则一千个字估计讲不清楚。
myy101 2012-12-25
  • 打赏
  • 举报
回复
引用 2 楼 ACMAIN_CHM 的回复:
// latin字符集不能输入中文么? 可以输入,但未必能正确解析。 计算机中最终存储的全是0,1。中文同样也是 0,1 所以理论上可以,但操作起来自己要注意.
latin输入中文后,数据库客户端显示乱码,这个时候修改表的编码类型,在客户端是否就能正常显示了呢?
ACMAIN_CHM 2012-12-25
  • 打赏
  • 举报
回复
server charset可以修改么? 可以,手册中已经介绍了。
ACMAIN_CHM 2012-12-25
  • 打赏
  • 举报
回复
// latin字符集不能输入中文么? 可以输入,但未必能正确解析。 计算机中最终存储的全是0,1。中文同样也是 0,1 所以理论上可以,但操作起来自己要注意.
ACMAIN_CHM 2012-12-25
  • 打赏
  • 举报
回复
// server charset 和 db charset有什么关系? 没有必然联系,但会综合影响文字输入。 建议详细阅读一下MYSQL官方免费文档中的介绍。 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspx MySQL 中文显示乱码 10.3.1. 服务器字符集和校对 MySQL服务器有一个服务器字符集和一个服务器校对规则,它们均不能设置为空。 MySQL按照如下方法确定服务器字符集和服务器校对规则: · 当服务器启动时根据有效的选项设置 · 根据运行时的设定值 在服务器级别,确定方法很简单。当启动mysqld时,根据使用的初始选项设置来确定服务器字符集和 校对规则。可以使用--default-character-set设置字符集,并且可以在字符集后面为 校对规则添加--default-collation。如果没有指定一个字符集,那就与--default-character-set=latin1相同。如果你仅指定了一个字符集(例如,latin1),但是没有指定一个 校对规则,那就与--default-charset=latin1 --default-collation=latin1_swedish_ci相同,因为latin1_swedish_ci是latin1的默认校对规则。因此,以下三个命令有相同的效果: shell> mysqld shell> mysqld --default-character-set=latin1 shell> mysqld --default-character-set=latin1 \ --default-collation=latin1_swedish_ci 更改设定值的一个方法是通过重新编译。如果希望在从源程序构建时更改默认服务器字符集和校对规则,使用:--with-charset和--with-collation作为configure的参量。例如: shell> ./configure --with-charset=latin1 或者: shell> ./configure --with-charset=latin1 \ --with-collation=latin1_german1_ci mysqld和configure都验证字符集/校对规则组合是否有效。如果无效,每个程序都显示一个错误信息,然后终止。 当前的服务器字符集和校对规则可以用作character_set_server和collation_server系统变量的值。在运行时能够改变这些变量的值。 10.3.2. 数据库字符集和校对 每一个数据库有一个数据库字符集和一个数据库校对规则,它不能够为空。CREATE DATABASE和ALTER DATABASE语句有一个可选的子句来指定数据库字符集和校对规则: CREATE DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] ALTER DATABASE db_name [[DEFAULT] CHARACTER SET charset_name] [[DEFAULT] COLLATE collation_name] 例如: CREATE DATABASE db_name DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; MySQL这样选择数据库字符集和数据库校对规则: · 如果指定了CHARACTER SET X和COLLATE Y,那么采用字符集X和校对规则Y。 · 如果指定了CHARACTER SET X而没有指定COLLATE Y,那么采用CHARACTER SET X和CHARACTER SET X的默认校对规则。 · 否则,采用服务器字符集和服务器校对规则。 MySQL的CREATE DATABASE ... DEFAULT CHARACTER SET ...语法与标准SQL的CREATE SCHEMA ... CHARACTER SET ...语法类似。因此,可以在同一个MySQL服务器上创建使用不同字符集和 校对规则的数据库。 如果在CREATE TABLE语句中没有指定表字符集和校对规则,则使用数据库字符集和校对规则作为默认值。它们没有其它目的。 默认数据库的字符集和校对规则可以用作character_set_database和 collation_database系统变量。无论何时默认数据库更改了,服务器都设置这两个变量的值。如果没有 默认数据库,这两个变量与相应的服务器级别的变量(character_set_server和collation_server)具有相同的

57,063

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧