phpMyAdmin版本历史、获奖情况及故障排除指南
1. phpMyAdmin版本历史
phpMyAdmin在发展过程中经历了多个版本的迭代,每个版本都带来了新的特性和改进。以下是一些主要版本的介绍:
| 版本号 | 发布时间 | 主要特性 |
| ---- | ---- | ---- |
| 2.7.0 | 2005年12月4日 | 结束对phpMyAdmin 2.3.0之前旧配置文件的支持,推出基于插件的新导入模块 |
| 2.8.0 | 2006年3月6日 | 包含新的基于Web的设置机制,开始新的版本编号方案 |
| 2.9.0 | 2006年9月20日 | 增加了字体大小选择器、新的导出格式和使用外部认证方法的可能性等小改进 |
| 2.10.0 | 2007年2月27日 | 主要亮点是Designer,一个新的基于Ajax的图形化关系管理器 |
| 2.11.0 | 2007年8月21日 | 支持创建视图,以及管理存储过程、函数和触发器 |
| 3.0 | 2008年9月27日 | 支持MySQL 5.1的特性,如分区和事件调度器,有新的起始页面并使用JavaScript效果 |
| 3.1 | 2008年11月11日 | 集成新的设置脚本,支持BLOB流传输,增加对Swekey硬件认证的支持 |
此外,phpMyAdmin加入了GoPHP5倡议,自2008年2月5日之后的新特性版本需要至少能运行PHP 5.2的服务器,同时3.x分支停止支持MySQL 5.0之前的版本。截至2009年1月,自2001年4月以来的累计下载量已超过一千七百万次。
2. 获奖情况
phpMyAdmin获得了众多奖项,彰显了其在行业内的卓越表现:
- 2002年12月,被SourceForge管理员评为“月度项目”。
- 2003年,在德国PHP杂志及其国际版的“最佳PHP应用/工具”类别中获得75%的读者投票,并在2003年11月的国际PHP会议上正式颁奖。
- 2005年和2006年,再次赢得德国PHP杂志的读者选择奖。
- 2006年,在SourceForge.net的“社区选择奖”中,在数据库和系统管理两个类别中获奖。
- 获得第五届年度OS/2世界奖的“年度最佳PHP应用”。
- 2006年底,在第三届“Trophées du Libre”竞赛中获得银奖。
- 2007年,在SourceForge.net的“社区选择奖”中,获得“系统管理员最佳工具或实用程序”奖。
- 2008年,获得“最有可能成为下一个10亿美元收购对象”奖和“系统管理员最佳工具或实用程序”奖,同时入围“开发人员最佳工具或实用程序”决赛。
- 2008年,获得InfoWorld的“开源平台和中间件(MySQL管理)最佳奖”。
3. 系统要求与基础配置
在使用phpMyAdmin时,需要确保满足系统要求并进行正确的基础配置:
-
系统要求
:下载包中的Documentation.html文件开头部分讨论了特定版本的系统要求,必须满足这些要求并正确配置环境以避免问题。一些问题可能是由服务器环境引起的,如Web服务器未正确配置以解释.php文件,或Web服务器中的PHP组件未使用mysql或mysqli扩展,MySQL账户配置不当等。可以通过以下简单的PHP脚本来检查PHP组件是否正常工作:
<?php
echo 'hello';
?>
如果上述脚本能正常输出“hello”,可以再尝试以下脚本:
<?php
phpinfo();
?>
该脚本会显示PHP组件的信息,包括可用的扩展,至少应看到关于MySQL的部分,以证明mysql扩展可用。
-
基础配置
:始终要仔细检查安装方式,包括正确的权限和所有权。在修改config.inc.php时可能会出现拼写错误。
4. 常见错误解决方法
当遇到错误时,首先要确定错误消息的来源,常见的错误来源包括MySQL服务器、Web服务器的PHP组件、Web服务器和Web浏览器。以下是一些常见错误及其解决方法:
-
Cannot load MySQL extension
:PHP连接MySQL服务器需要mysql扩展(对于MySQL 4.1+推荐使用mysqli扩展)。该扩展可能是PHP服务器的一部分,也可能需要动态加载。如果加载失败,意味着没有其他PHP脚本可以连接到MySQL服务器。所需的扩展文件在Linux或UNIX上可能名为mysql.so或mysqli.so,在Windows上可能名为mysql.dll或mysqli.dll。如果PHP服务器来自软件包,可以找到并安装另一个软件包(可能名为php - mysql或php - mysqli,名称取决于发行版);否则,可以按照PHP文档中的说明编译自己的PHP服务器并包含相应的扩展。
-
#2003 - Can’t connect to MySQL server
:此消息表示MySQL服务器未运行,或Web服务器无法访问它,也可能是套接字(Linux/UNIX)或命名管道(Windows)配置问题。
-
套接字问题(Linux/UNIX)
:php.ini中配置的套接字与运行的MySQL服务器的套接字不对应,例如:
mysql.default_socket = /tmp/mysql.sock
可以将其更改为:
mysql.default_socket = /var/lib/mysql/mysql.sock
但必须找到该套接字的确切位置。
-
命名管道问题(Windows)
:类似于上述问题,可以通过调整mysql.default_socket为正确的命名管道来解决,例如:
mysql.default_socket = MySQL
-
MySQL said: Access denied
:
- 使用http认证时 :不能同时使用基于.htaccess文件的Web服务器安全机制和config.inc.php中的http认证,可将认证类型改为cookie作为解决方法。
- 使用http、cookie或config认证时 :config.inc.php中的主机参数必须与用户访问权限中定义的主机匹配。例如,系统管理员创建了允许用户“bill”和主机“localhost”的账户,如果在config.inc.php中使用“127.0.0.1”作为主机,即使它们指向同一台机器,也会被MySQL拒绝。
- Access denied … “using password: NO” :表示未传输密码,MySQL拒绝登录尝试,可能是config.inc.php中未设置密码值。
- Access denied … “using password: YES” :表示传输了密码,但主机/用户名/密码组合被MySQL拒绝。
-
Warning: cannot add header information
:此问题是由于config.inc.php中在开头的
<?php标签之前或结尾的?>标签之后存在一些字符(如空行或空格),可以使用支持.php文件的编辑器删除这些字符。 - MySQL said: Error 127, Table Must Be Repaired :在左侧面板中点击数据库名称,在右侧面板中使用相关复选框选择有错误的表名称,然后从下方的下拉列表中选择“Repair”。
- BLOB column used in key specification without a key length :MySQL要求在BLOB列上设置的索引必须有大小限制。在创建列时使用的简单索引创建技术不允许指定大小,因此需要先创建没有索引的列,然后返回“Structure”页面,使用“Create an index”对话框选择BLOB列并为索引设置大小。
-
IIS: No Input File Specified
:这是一个权限问题,Internet Information Server(IIS)必须能够读取脚本。由于服务器以用户“IUSR_machinename”运行,需要执行以下步骤:
- 右键单击安装phpMyAdmin的文件夹。
- 选择“Properties”。
- 在“Security”选项卡下点击“Add”,从列表中选择“IUSR_machinename”用户。
- 确保该用户对该目录具有读取权限。
-
A “404: page not found” error when modifying a row
:当config.inc.php中的
$cfg['PmaAbsoluteUri']参数设置不正确时会出现此问题,可参考相关说明正确设置该参数。
5. 其他问题及解决方法
除了上述明确的错误消息外,还可能遇到一些没有特定错误消息显示的问题:
-
Blank page or weird characters
:默认情况下,phpMyAdmin使用输出缓冲和压缩技术来加快结果传输到浏览器的速度,但这些技术可能会与Web服务器的其他组件产生干扰,导致显示问题。可以在config.inc.php中将
$cfg['OBGzip']
设置为FALSE来解决。
-
Not being able to create a database
:如果phpMyAdmin检测到用于登录的账户没有创建数据库的权限,在主页的“Create database”对话框旁边会显示“无权限”。这种情况在托管服务器上很常见,系统管理员通常会为每个客户创建一个数据库。如果不是托管服务器,这表明既没有全局CREATE权限,也没有对通配符数据库规范的CREATE权限。
-
Problems importing large files or uploading large BLOB files
:通常这些问题表示在传输过程中达到了限制,可以参考相关说明了解这些限制并采取推荐的操作,作为最后手段,可能需要拆分大文本文件(可在互联网上搜索文件拆分工具)。
-
MySQL root password lost
:可以参考MySQL手册中的说明(http://www.mysql.com/doc/en/Resetting_permissions.html),通过停止MySQL服务器并使用特殊选项“skip–grant–tables”重新启动(基本上是在无安全模式下启动服务器),然后从phpMyAdmin以超级用户(如root)和任意密码连接到服务器,更改root密码,最后使用正常程序停止并重新启动MySQL服务器。
-
Duplicate field names when creating a table
:当尝试创建包含例如一个名为“FIELD1”的VARCHAR(15)类型字段的表时,看起来phpMyAdmin发送了创建两个相同字段名为“FIELD1”的命令。该问题不是由phpMyAdmin引起的,而是由环境问题导致的。当Apache配置文件中使用了两组不同且冲突的指令时会出现此问题:
SetOutputFilter PHP
SetInputFilter PHP
和
AddType application/x-httpd-php .php
建议使用AddType指令,将其他行注释掉并重新启动Apache:
#SetOutputFilter PHP
#SetInputFilter PHP
-
Authentication window displayed more than once
:当使用与config.inc.php中
$cfg['PmaAbsoluteUri']设置不同的URL启动phpMyAdmin时会出现此问题,例如服务器有多个名称,或者尝试使用IP地址而不是名称。 - Column size changed by phpMyAdmin :为了更高效的列定义,MySQL有时会自行决定更改列类型和大小,这种情况主要发生在CHAR和VARCHAR类型上。
- Seeing many databases that are not ours :此问题通常在升级到MySQL 4之后出现,自动服务器升级过程会向所有用户授予全局权限“CREATE TEMPORARY TABLES”、“SHOW DATABASES”和“LOCK TABLES”,这些权限使用户能够看到所有数据库的名称(但不能看到其表),直到按照MySQL手册中的说明升级GRANT表权限。如果用户不需要这些权限,可以撤销这些权限,用户将只看到具有访问权限的数据库。
- Not being able to store a value greater than 127 :如果定义了TINYINT类型的列,这是正常的,因为127是该列类型的最大值。对于其他数字列类型也可能出现类似问题,将类型更改为INT可以扩展可用的值范围。
6. 寻求支持
当遇到问题时,可以通过以下途径寻求支持:
-
官网
:http://www.phpmyadmin.net 是获取支持的起点,该网站有文档和支持部分,提供了讨论论坛和各种跟踪器的链接,包括:
- Bug tracker
- Feature requests tracker
- Translations tracker
- Patches tracker
- Support tracker
-
FAQs
:产品中的Documentation.html文件包含一个详细的FAQ部分,有编号的问题和答案,建议首先查阅该部分以获取帮助。
-
帮助论坛
:开发团队建议先使用产品的论坛搜索遇到的问题,然后在开启错误报告之前发起新的论坛讨论。创建一个免费的SourceForge用户账户并用于在论坛上发帖是非常推荐的,这样可以更好地跟踪问题和答案。在发起新的论坛线程时,要仔细选择摘要标题,避免使用如“Help me!”、“Help a newbie!”、“Problem”或“phpMyAdmin error!”等难以处理的标题,更好的标题如“Import with UploadDir”、“User can’t but root can login”或“Server not responding”。在论坛上对答案给予反馈可以帮助回答者和其他有相同问题的人。
-
支持跟踪器
:可以在此处寻求支持,如果提交的错误报告实际上是一个支持请求,报告将被转移到支持跟踪器,使用SourceForge用户账户可以收到此跟踪器更改的通知。
-
错误跟踪器
:在该跟踪器中可以看到尚未修复的错误以及为下一个版本修复的错误,以避免重复的错误报告。在报告错误时,需要描述环境,包括phpMyAdmin版本、Web服务器名称和版本、PHP版本、MySQL版本、浏览器名称和版本等信息。通常不需要指定服务器或客户端运行的操作系统,除非发现该错误仅与某个操作系统相关。同时,要准确描述问题发生的情况(包括任何错误消息、预期结果和实际结果),每个错误报告最好只描述一个问题(除非问题明显相关),有时可以附加一个简短的导出文件或提供截图以帮助开发人员重现问题。
7. 贡献项目
自1998年以来,已有数百人为phpMyAdmin贡献了翻译、新功能代码、建议和错误修复。如果您有兴趣为项目做出贡献,可以通过各种方式参与其中,共同推动phpMyAdmin的发展。
以下是一个简单的mermaid流程图,展示遇到问题时的处理流程:
graph LR
A[遇到问题] --> B{是否为明确错误消息}
B -- 是 --> C[根据错误类型查找解决方法]
B -- 否 --> D[参考其他问题解决方法]
C --> E{是否解决问题}
D --> E
E -- 是 --> F[问题解决]
E -- 否 --> G[寻求支持(论坛、跟踪器等)]
通过以上内容,我们对phpMyAdmin的版本历史、获奖情况、常见问题及解决方法有了全面的了解,希望能帮助您更好地使用和维护phpMyAdmin。
phpMyAdmin版本历史、获奖情况及故障排除指南
8. 常见错误与解决方法总结
为了更清晰地呈现常见错误及解决方法,我们整理了如下表格:
| 错误类型 | 错误描述 | 解决方法 |
| ---- | ---- | ---- |
| Cannot load MySQL extension | PHP无法加载MySQL扩展 | 若PHP服务器来自软件包,安装对应软件包(如php - mysql或php - mysqli);否则按PHP文档编译含对应扩展的PHP服务器 |
| #2003 - Can’t connect to MySQL server | 无法连接到MySQL服务器 | 检查服务器是否运行,处理套接字(Linux/UNIX)或命名管道(Windows)配置问题 |
| MySQL said: Access denied | MySQL访问被拒绝 | 根据认证方式调整配置,确保主机参数匹配,检查密码设置 |
| Warning: cannot add header information | 无法添加头部信息 | 用支持.php文件的编辑器删除config.inc.php中
<?php
标签前或
?>
标签后的多余字符 |
| MySQL said: Error 127, Table Must Be Repaired | 表需要修复 | 在左侧面板选数据库,右侧选有错误的表,从下拉列表选“Repair” |
| BLOB column used in key specification without a key length | BLOB列索引未指定大小 | 先创建无索引的列,再到“Structure”页面用“Create an index”对话框设置索引大小 |
| IIS: No Input File Specified | IIS提示无输入文件 | 右键文件夹选“Properties”,在“Security”选项卡添加“IUSR_machinename”用户并赋予读取权限 |
| A “404: page not found” error when modifying a row | 修改行时出现404错误 | 正确设置config.inc.php中的
$cfg['PmaAbsoluteUri']
参数 |
9. 不同环境下的问题处理
不同的服务器环境可能会导致一些特定的问题,下面分别介绍Linux/UNIX和Windows环境下的常见问题及处理方式:
-
Linux/UNIX环境
-
套接字问题
:如前面所述,php.ini中配置的套接字可能与运行的MySQL服务器的套接字不对应,需要找到正确的套接字位置并修改配置。
-
权限问题
:确保phpMyAdmin所在目录及文件的权限设置正确,避免因权限不足导致的问题。可以使用以下命令修改权限:
chmod -R 755 /path/to/phpmyadmin
-
Windows环境
- 命名管道问题 :调整mysql.default_socket为正确的命名管道,以解决连接问题。
- IIS权限问题 :按照前面提到的步骤,为IIS用户赋予读取权限,确保服务器能够读取脚本。
10. 性能优化建议
为了提高phpMyAdmin的性能,可以考虑以下几点建议:
-
合理配置参数
:在config.inc.php中合理设置参数,如
$cfg['OBGzip']
,根据实际情况调整输出缓冲和压缩技术的使用。
-
更新组件版本
:始终运行各个组件的最新稳定版本,包括PHP、MySQL和Web服务器,以获得更好的性能和安全性。
-
优化数据库结构
:合理设计数据库表结构,避免不必要的列和索引,提高数据库的查询效率。
11. 安全注意事项
在使用phpMyAdmin时,安全是至关重要的,以下是一些安全注意事项:
-
设置强密码
:为MySQL账户设置强密码,避免使用简单易猜的密码。
-
限制访问权限
:仅允许授权的IP地址访问phpMyAdmin,可通过防火墙或Web服务器配置实现。
-
定期备份数据
:定期备份数据库,以防止数据丢失或损坏。
12. 未来展望
随着技术的不断发展,phpMyAdmin也在不断演进。未来,我们可以期待它支持更多的数据库特性,提供更友好的用户界面,以及更好的性能和安全性。同时,社区的贡献也将继续推动phpMyAdmin的发展,使其成为更强大的数据库管理工具。
以下是一个mermaid流程图,展示性能优化和安全处理的流程:
graph LR
A[使用phpMyAdmin] --> B{是否关注性能}
B -- 是 --> C[进行性能优化(配置参数、更新组件等)]
B -- 否 --> D{是否关注安全}
C --> D
D -- 是 --> E[采取安全措施(设置强密码、限制访问等)]
D -- 否 --> F[正常使用]
E --> F
通过对phpMyAdmin的全面了解,包括版本历史、获奖情况、常见问题解决方法、性能优化和安全注意事项等,我们能够更好地使用和管理这个强大的数据库管理工具。希望以上内容对您有所帮助。
超级会员免费看

被折叠的 条评论
为什么被折叠?



