phpMyAdmin 链接表的附加功能尚未激活的问题

yipeiwu_com5年前PHP代码库

安装phpMyAdmin的时候我还是没有手动配置config文件,而是使用了它的setup功能。
除了 服务器名称 和 认证方式 以外都使用了默认值。
服务器名称自己随便输入了一个,认证方式修改成了http。
另外PMA数据库一页点了文本框后面的笔,把默认值填进去了。
(这时候我已经创建了控制用户,而且把用户名和密码输入进去了。创建的方法我会在后面讲)
保存设置后,输入MySQL的root用户名和密码,打开phpMyAdmin的主画面后,出现了如下的错误

点了 请点击此处之后 看到的画面如下


解决这个问题要注意的地方如下。
1.config文件的删除与拷贝处理
这个有可能不是问题的关键,但是我是在出现问题之后,阅读了官方的文档,然后进行了处理。
在setup画面保存了设置之后,把./config/config.inc.php拷贝到./也就是根目录下,然后删除./config目录
2.创建附加功能需要的数据库和表
在./scripts文件夹下存在一个create_tables.sql文件,将它导入MySQL,创建相应的表。
虽然附加功能还存在问题,但是已经可以使用phpMyAdmin来管理MySQL了,所以我通过下面的画面倒入了create_tables.sql文件

3.创建控制用户
这个我在出现问题之前就已经创建好了。
我使用MySQL的命令行工具,执行了一下的SQL命令。

复制代码 代码如下:

GRANT USAGE ON mysql.* TO 'pma'@'localhost' IDENTIFIED BY 'pmapass';
GRANT SELECT (
Host, User, Select_priv, Insert_priv, Update_priv, Delete_priv,
Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv,
File_priv, Grant_priv, References_priv, Index_priv, Alter_priv,
Show_db_priv, Super_priv, Create_tmp_table_priv, Lock_tables_priv,
Execute_priv, Repl_slave_priv, Repl_client_priv
) ON mysql.user TO 'pma'@'localhost';
GRANT SELECT ON mysql.db TO 'pma'@'localhost';
GRANT SELECT ON mysql.host TO 'pma'@'localhost';
GRANT SELECT (Host, Db, User, Table_name, Table_priv, Column_priv)
ON mysql.tables_priv TO 'pma'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON <pma_db>.* TO 'pma'@'localhost';

4.修改config.inc.php文件。
因为setup画面上没有设定tracking,所以在进行完上述处理之后第二幅图的其他项目都变成了绿色,但是最后一个项目还是红色。
所以自己在config.inc.php文件中追加了
$cfg['Servers'][$i]['tracking'] = 'pma_tracking';
这样一行。
5.存在config.inc.php文件的修改没有起作用的情况
在完成了1到3的设置后,访问主画面的时候,第二幅图的设置没有立即变成绿色。
为了验证config.inc.php文件的修改有没有效果,我把文件中一个很重要的设置'host'给改了,随便在后面加了几个a。
之后访问phpMyAdmin的时候就出错了。然后把那几个a去掉,再访问的时候,除了最后一项tracking,其他都是绿色了。
大概是因为浏览器或者apache缓存的问题吧,这个我还没太搞清楚。

相关文章

php实现指定字符串中查找子字符串的方法

本文实例讲述了php实现指定字符串中查找子字符串的方法。分享给大家供大家参考。具体分析如下: 对strpos()函数可以用来在php中查找子字符串。strpos()函数将试图找到子字符串...

php curl常见错误:SSL错误、bool(false)

症状:php curl调用https出错 排查方法:在命令行中使用curl调用试试。 原因:服务器所在机房无法验证SSL证书。 解决办法:跳过SSL证书检查。 curl_setopt($...

php数组中删除元素的实现代码

复制代码 代码如下: <?php $arr = array('a','b','c','d'); unset($arr[1]); print_r($arr); ?> prin...

php中Ioc(控制反转)和Di(依赖注入)

先看一个例子: <?php class A { public $b; public $c; public function A() { //TODO }...

详解PHP中array_rand函数的使用方法

前言 array_rand() 函数从数组中随机选出一个或多个元素,并返回。从一个数组中随机取出n个值,用array_rand()可以轻易的实现,当面对大数组的时候,我们会担心他的效率、...