易截截图软件、单文件、免安装、纯绿色、仅160KB

MySQL的“SET NAMES x”字符集问题分析

MySQL的字符集问题。Windows下可通过修改my.ini内的
CODE:
# CLIENT SECTION
[mysql]
default-character-set=utf8
#
SERVER SECTION
[mysqld]
default-character-set=utf8

两个字段来更改数据库

默认字符集。第一个是客户端默认的字符集,第二个是服务器端默认的字符集。假设我们把两个都设为utf8,然后在MySQL Command Line
Client里面输入“show variebles like“character_set_%”;”,可看到如下字符:
character_set_client 
 latin1
character_set_connection    latin1
character_set_database 
   utf8
character_set_results    latin1
character_set_server   utf8
character_set_system 
   utf8
其中的utf8随着我们上面的设置而改动。此时,要是我们通过采用UTF-8的PHP程序从数据库里读取数据,很有可能
是一串“?????”或者是其他乱码。网上查了半天,解决办法倒是简单,在连接数据库之后,读取数据之前,先执行一项查询“SET NAMES
UTF8”,即在PHP里为
mysql_query("SET NAMES UTF8");
即可显示正常(只要数据库里
信息的字符正常)。为什么会这样?这句查询“SET NAMES UTF8”到底是什么作用?
到MySQL命令行输入“SET
NAMES UTF8;”,然后执行“show variebles
like“character_set_%”;”,发现原来为latin1的那些变量“character_set_client”、
“character_set_connection”、“character_set_results”的值全部变为utf8了,原来是这3个变量在捣
蛋。查阅手册,上面那句等于
看看这3个变量的作用:
信息输入路径:client→connection→server;

息输出路径:server→connection→results。
换句话说,每个路径要经过3次改变字符集编码。以出现乱码的输出为
例,server里utf8的数据,传入connection转为latin1,传入results转为latin1,utf-8页面又把results
转过来。如果两种字符集不兼容,比如latin1和utf8,转化过程就为不可逆的,破坏性的。所以就转不回来了.
但这里要声明一
点,“SET NAMES UTF8”作用只是临时的,MySQL重启后就恢复默认了。
接下来就说到MySQL在服务器上的配置问题了。岂不是我
们每次对数据


相关文档:

连接Mysql数据库小常识

1.加载mysql驱动包Properties->java Build Path->Libraries->Add External JARs...
2.Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名?user=root&password=密码"); ......

MySQL查询表内重复记录

MySQL查询表内重复记录
 
查询及删除重复记录的方法
(一)
1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断
select * from people
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
2、删除表中多余的重复记录,重复记录是根据单个字段 ......

mysql的cardinality在myisam和innodb中的不同

详细解释和例子见下列文章:
http://www.mysqlperformanceblog.com/2008/09/03/analyze-myisam-vs-innodb/
http://www.penglixun.com/work/database/mysql_show_index_cardinality.html
(1)cardinality影响mysql optimizer对索引的选取
(2)可以通过show index from table_name来查看表的索引和cardinality
(3)in ......

怎样解决mysql的too many connections问题?

可以参考下列文章
http://www.mysqlperformanceblog.com/2010/03/23/too-many-connections-no-problem/
结论如下:
(1)mysql默认会给super用户留一个连接,你可以用这个预留的连接来登录,来增加连接数;但是如果连接的用户全是super权限的,则这个预留的连接不存在。这时可以用以下的命令来设置连接数:gdb -p $(cat ......

MySQL 免安装版配置

1.下载 MySQL 6.0免安装版
http://www.mysql.com/downloads/mirror.php?id=386828
2.将 MySQL6.0 解压到待安装目录(自己决定放到哪)。解压后默认文件夹名称为:mysql(当然可以自己更改),然后在环境变量中设置MYSQL_HOME(这样,以后可以用%MYSQL_HOME%引用安装目录)。如,我放在E盘根目录下,所以,MYSQL_HOME设置为 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号