Java堂  


乱码造成本站之前数据破坏,借此谈谈MySQL的乱码问题

归档在: Database, Life, Tools — Jet @ 3:18 上午
原文出处: http://www.javatang.com/archives/2007/10/23/1847217.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

为了防止升级失败我特意用sqlYog将数据备份了一下,然后升级的过程中没有任何问题,因为我发现原来的栏目排列有些改变,于是就直接清空数据然后再导入备份过的数据重新安装一下系统。当前清空数据库的时候没有多想,反正之前有备份。这个时候问题出现了:导入备份后的数据全部变成了乱码!确切的应该说是错码才对,因为出现的不是问号而是一些错误的中文字。

乱码

反复试了很多种方法依然是无效,后来从sqlYog官方网站上查到sqlYog从6.0开始每次生成的sql文件编码都是utf-8格式的,另外在操作数据之前都使用

  1. set names "utf8";

将所有的环境都设置为utf8编码,你可以在sqlYog的查询窗口中使用

  1. SHOW VARIABLES LIKE 'character_set_%';

查看一下语言环境。sqlYog在查看数据的时候首先查看原来数据库设置的编码格式,然后将其转换为utf8格式的数据,最后输出出来;如果修改数据则相反。上次我在博文中提到使用sqlYog6.03可以直接查看gbk编码的数据,但是查看utf8格式的编码是乱码,我觉得这应该是sqlYog6.03版本中转换编码算法的一个bug,果然在最新发布的6.10rc版本中就修复了这个错误;另外一个就是根数据库默认设置的编码也有很大的关系,因为MySQL使用的默认编码是latin1,正是这样一个非常具有历史原因的设置成为了造成乱码的最直接的原因。这里可能有人会说不是sqlYog操作之前都已经将环境设置为utf8格式了吗?这个时候应该跟MySQL本身的编码没有任何关系了呀。sqlYog操作的时候是不会有关系,但是其他进程(比如php、java等)操作的时候呢?数据写入的时候已经出现乱码了,问题就出在这里。所以为了完全杜绝MySQL的乱码问题,建议将MySQL的默认编码设置为utf8格式。

因为wordpress数据库中的编码都是utf8格式的,我又使用的sqlYog6.03版本,所以无论查看还是备份utf8的数据都是乱码。最后只能是逐一从百度快照中将数据找出来添加到数据库中,因为我在wordpress中设置的remark规则跟时间和最后的数据id号有关系,为了不至于造成在百度中搜索出来的结果失效,所以首先先将原来数据库中的这些数据导入到新的数据中。当然这个时候wordpress已经升级成2.3了,呵呵(苦笑中…)

目前在2006年8月份之前的数据还没有恢复,将近有80条。我会在最近这段时间将他升级完成的。

参考资料:Which MySQL Character Sets are supported by SQLyog?

phpMyAdmin初次安装拒绝登录的问题及解决方法

归档在: Database, DynamicLanguage, Tools, Web&Server — Jet @ 10:45 下午
原文出处: http://www.javatang.com/archives/2007/09/11/4535187.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

今天安装phpMyAdmin 2.10的时候修改认证方式为cookie之后进入程序首页登录的时候一直提示访问被拒绝,真的是奇怪了。后来从网上查了一下原来是需要清空一下浏览器缓存。

参考资料:hpMyAdmin 2.10.2 配置

SQLyog 6.x 开始支持Unicode编码了!!

归档在: Database, Tools — Jet @ 6:27 下午
Tags: ,
原文出处: http://www.javatang.com/archives/2007/07/25/2757191.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

sqlyog_box.jpg

一直是使用SQLyog来管理MySQL的,感觉他功能非常的强大,而且使用操作的时候非常的方便。但是一直以来SQLyog有个特别不爽的地方就是不支持Unicode,在查看数据库中的中文时会显示乱码,so如果直接用软件编辑保存的话显示到网页上面就是乱码了,完全没有使用SQL Server管理器那样的方便。

不过现在好了,今天无意间到SQLyog官方网站上面的时候,发现软件已经升级到6.x版本了,我所期待的支持中文的功能也实现了,爽啊~~~

Windows下安装zip包版本的MySQL

归档在: Database — Jet @ 2:10 上午
Tags:
原文出处: http://www.javatang.com/archives/2007/03/30/1025157.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

虽然官方提供了非常好的安装文件,但是有的时候不想每次再重装系统之后都要安装一遍MySQL,需要使用zip包版本的MySQL。在配置的时候有以下几个问题需要了解的,总结一下:

1. 设置MySQL为Windows服务

在Windows下用mysqld-nt.exe可以注册为服务,即用mysqld-nt –install mysql
这会设置为mysqld-nt.exe为mysql服务,相关信息在命令行模式下查询mysqld-nt –verbose –help

2. 启动服务时出现“错误1067”的解决方法

参考手册中明确说明了这个问题:

These messages often occur when the MySQL base or data directories are installed in different locations than the default locations (C:\Program Files\MySQL\MySQL Server 5.0 and C:\Program Files\MySQL\MySQL Server 5.0\data, respectively).

上面的意思是在没有将MySQL安装到默认的目录下面的情况下启动Windows服务的时候就会出现上述提示,解决的办法就是指定MySQL跟目录以及数据库目录。在my.ini文件最后增加以下内容,然后将my.ini拷贝到windows目录下。

  1. [mysqld]
  2. # set basedir to your installation path
  3. basedir=E:/mysql
  4. # set datadir to the location of your data directory
  5. datadir=D:/MySQLdata

3. 初始帐号

用户名root,密码为空,所以说默认情况下的MySQL5是不安全的。进入之后立即修改root帐号密码,命令如下:

  1. set password for root@localhost =password('yourPassword');
  2. flush privileges;

MySQL-Front查看中文数据出现乱码的解决方法

归档在: Database, Tools — Jet @ 11:52 下午
原文出处: http://www.javatang.com/archives/2006/03/18/521712.html
作者: Jet Mah from Java堂
声明: 可以非商业性任意转载, 转载时请务必以超链接形式标明文章原始出处、作者信息及此声明!

MySQL-Front是一款非常优秀的操作MySQL的软件,但是使用它连接MySQL4.1及以上版本的时候,中文数据会出现乱码。解决的办法是:建立数据库连接时字符集选择BINARY就可以了.但是这种方法对于UTF8字符依然出现乱码。