热烈祝贺台州朗动科技的站长论坛隆重上线!(2012-05-28)    热烈庆祝伟大的祖国60周年生日 点击进来我们一起为她祝福吧(2009-09-26)    站长论坛禁止发布广告,一经发现立即删除。谢谢各位合作!.(2009-08-08)    热烈祝贺台州网址导航全面升级,全新版本上线!希望各位一如既往地支持台州网址导航的发展.(2009-03-28)    台州站长论坛恭祝各位新年快乐,牛年行大运!(2009-01-24)    台州Link正式更名为台州网址导航,专业做以台州网址为主的网址导航!(2008-05-23)    热烈祝贺台州Link资讯改名为中国站长资讯!希望在以后日子里得到大家的大力支持和帮助!(2008-04-10)    热烈祝贺台州Link论坛改名为台州站长论坛!希望大家继续支持和鼓励!(2008-04-10)    台州站长论坛原[社会琐碎]版块更名为[生活百科]版块!(2007-09-05)    特此通知:新台州站长论坛的数据信息全部升级成功!">特此通知:新台州站长论坛的数据信息全部升级成功!(2007-09-01)    台州站长论坛对未通过验证的会员进行合理的清除,请您谅解(2007-08-30)    台州网址导航|上网导航诚邀世界各地的网站友情链接和友谊联盟,共同引领网站导航、前进!(2007-08-30)    禁止发广告之类的帖,已发现立即删除!(2007-08-30)    希望各位上传与下载有用资源和最新信息(2007-08-30)    热烈祝贺台州站长论坛全面升级成功,全新上线!(2007-08-30)    
便民网址导航,轻松网上冲浪。
台州维博网络专业开发网站门户平台系统
您当前的位置: 首页 » MySQL/MSSQL编程 » phpmyadmin连接Mysql问题集解

phpmyadmin连接Mysql问题集解

论坛链接
  • phpmyadmin连接Mysql问题集解
  • 发布时间:2007-09-21 20:39:08    浏览数:8259    发布者:tznktg    设置字体【   
1.出现“没有发现 PHP 的扩展设置mbstring, 而当前系统好像在使用宽字符集。没有 mbstring 扩展的 phpMyAdmin 不能正确识别字符串,可能产生不可意料的结果.”

解决方法:

win系统:

打开c:\windows\php.ini

;extension=php_mbstring.dll
改成
extension=php_mbstring.dll
unix:
[color=Green]打开/etc/php.ini

;extension=php_mbstring.so
改成
extension=php_mbstring.so


2.登入时出现:“#1251 - Client does not support authentication protocol requested by server; consider upgrading MySQL client”

问题的中文意思:如果你升级mysql到4.1以上版本后遇到以上问题,请先确定你的mysql client 是4.1或者更高版本.(WINDOWS下有问题你就直接跳到下面看解决方法了,因为MYSQL 在WINDOWS是client和server一起装上了的)

解决方法:

请使用以下四种方法之一

其一:

mysql> SET PASSWORD FOR
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');


实例:mysql数据库用户名为'abc',密码为'123456',则按上面例子在服务器mysql命令行窗口中实际实施的语句如下:
mysql> SET PASSWORD FOR
-> 'abc'@'localhost' = OLD_PASSWORD('123456');


注意语句后的英文半角分号";"不可缺少。

其二:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;


实例:mysql数据库用户名为'abc',密码为'123456',则按上面例子在服务器mysql命令行窗口中实际实施的语句如下:


mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('123456')
-> WHERE Host = 'localhost' AND User = 'abc';
mysql> FLUSH PRIVILEGES;

注意语句后的英文半角分号";"不可缺少。
其三:(推荐,其实和第二种是一样的) mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('连接用户的密码') -> WHERE User = '要连接的用户名';mysql> FLUSH PRIVILEGES; 实例:mysql数据库用户名为’abc’,密码为'123456',则按上面例子在服务器mysql命令行窗口中实际实施的语句如下: mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('123456') -> WHERE User = 'abc'; mysql> FLUSH PRIVILEGES; 注意语句后的英文半角分号";"不可缺少。 其四:更新PHP里MySQL模块的版本以支持新版本的MySQL
      在使用phpMyAdmin-2.6.0以上版本进行数据库管理操作时,页面上显示的中文为乱
码。更改页面的语言设置和连接校对都没有作用,依然显示乱码。

在MySQL-4.0以上和phpMyAdmin-2.6.0以上版本组合中,会出现以上问题;在MySQL
-3.x和任意版本phpMyAdmin,或者phpMyAdmin-2.6.0一下(含2.6.0)和任意版本
MySQL不会出现上述问题。


造成以上问题的原因在于,数据库存储时的字符集,和phpMyAdmin认为的数据库字
符集,以及页面显示的字符编码没有对应到正确的值。

例如:在prima中,数据库内容的字符集为gb2312,数据库字符集是默认的
latin1,这样的数据库内容在小于等于phpMyAdmin- 2.6.0上显示没有问题,但是
在phpMyAdmin-2.6.0以上版本,默认数据库字符集都是utf-8,这时就产生了上述
问题。

所以,解决问题的关键,是把这几个值都设置成相应的正确的值。

3. 问题解决:

为了便于描述,这里拿prima来作为示例。当用户自己升级了phpMyAdmin到2.6.0以
上版本之后,登录之后发现中文都变成了乱码,但是,这时站点页面上的显示是正
常的。这是,只需要改phpMyAdmin文件中的两处,即可解决。

1) 在libararies/select_lang.lib.php文件中,找到$mysql_charset_map的赋值
段,将其中的'gb2312' => 'gb2312'改为'gb2312' => 'latin1';
2) 在libararies/select_lang.lib.php文件中,找到$available_languages赋值
段,将'zh- gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh')改为'zh-gb2312-utf-8' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh')

修改之后,保存文件,这时登录phpMyAdmin,语言选择的时候,选择Chinese
simplified (zh-gb2312-utf-8),然后在查看数据库,这时就正常了。
4. 说明:

原则上,只需要做以上修改步骤中的第一步就可以解决问题。因为已经确定了正确
的内容字符集和数据库字符集的对应关系。phpMyAdmin中,数据库字符集是和语言
选择相关联的,所以这时只要选择Chinese simplified (zh-gb2312)就可以了。但
是,由于phpMyAdmin的设计,在页面上并不能显示出非utf-8的语言字符集选项,
所以,需要对$ available_languages进行修改。将zh-gb2312后边加上utf-8使页
面能显示出这个选项,需要使用时,选择Chinese simplified (zh-gb2312-utf-
8)。经测试,修改之后,用phpMyAdmin查看和修改数据库都没有问题,页面使用
gb2312字符编码。

5. 结论:

以上只是通过prima来说明问题,其他情况可以参照以上方法解决,无非是数据库
字符集和页面显示字符集的设定。
      本文讲述如果解决 phpMyAdmin 高版本数据表里中文字符显示乱码的问题。

先说一下我数据库的情况。
MySQL 版本:5.0.26
MySQL 默认字符集:latin1
论坛数据库字符集:latin1
phpMyAdmin 版本:2.9.0.2

使用 phpMyAdmin 打开我的数据库后,发现数据表里的中文全是全是乱码,不管如何改变 phpMyAdmin 所使用的语言都无济于事。
仔细研究一下,发现 phpMyAdmin 默认显示的网页编码是 Unicode UTF-8 ,查看当前 IE 浏览器所使用的编码也就是 Unicode (UTF-8)。

所以我想让页面编码变为 GB2312,当然啦,强行指定 IE 使用的字符集是不行的。目的是要让 phpMyAdmin 吐出 GB2312 编码。

下面是我的修改过程:
打开 phpMyAdmin 根目录中 libraries/select_lang.lib.php 文件;
找到:
CODE:

'zh-gb2312' => array('zh|chinese simplified', 'chinese_simplified-gb2312', 'zh', '中文'),
将其改为:
CODE:

'zh-gb2312-utf-8' => array('zh|chinese simplified-UTF8', 'chinese_simplified-gb2312', 'zh', '中文'),
再找到:
CODE:

'gb2312' => 'gb2312',
将其改为:
CODE:

'gb2312' => 'latin1',
保存文件退出。

然后从浏览器打开 phpMyAdmin ,在首页选择 Language 为:中文 -Chinese simplified-UTF8

然后打开数据表看看里面的中文是不是已经可以正常显示了:)

注意:我数据库的字符集是 latin1 ,如果你的数据库字符集不是 latin1,那要酌情改动一下修改过程。'gb2312' => 'your_character_code',
娱乐休闲专区A 影视预告B 音乐咖啡C 英语阶梯D 生活百科
网页编程专区E AMPZF HTMLG CSSH JSI ASPJ PHPK JSPL MySQLM AJAX
Linux技术区 N 系统管理O 服务器架设P 网络/硬件Q 编程序开发R 内核/嵌入
管理中心专区S 发布网址T 版主议事U 事务处理