以root用户或普通用户身份连接,在mysql控制台中一切正常

在php上,连接正常,设置架构很好,但不会从架构中提取数据。

//连接并设置架构
$ _db = mysql_connect('127.0.0.1','root','*******');
mysql_select_db('suangao');
echo“ schema =” .db_get_col(“ select database()”);
// => schema =上海

//非表查询
$ result = mysql_query(“ select 1”);
echo“第1行=” .mysql_num_rows($ result);
// =>行1 = 1

//最简单的表查询
$ result = mysql_query(“从用户中选择1”);
echo“第2行=” .mysql_num_rows($ result);
// =>行2 = 0


php甚至看不到users表,但是在mysql中创建,插入等

相同的设置可以在其他计算机上正常运行,但无法正常运行



小腿!确实,表users是空的!我错误地认为,如果表存在,select 1 from table总是会返回1-显然我是错误的!

最佳答案

据我所知,mysql用户的权限取决于其主机掩码。
我不知道如果您通过mysql控制台连接并且在连接时不添加主机,则使用哪个主机。但这似乎与脚本使用的有所不同,因此您的权限不足。

尝试将连接脚本中的127.0.0.1更改为localhost。尽管这是相同的,但在细节上并不相同。然后,连接的用户应具有另一个主机掩码,并希望该主机掩码已授予您所需的权限。

最后,您可以通过控制台使用root帐户连接并查看表user_privileges来检查特权。那里的条目应该说明一切。

关于php - mysql:在控制台中工作正常,在php中将无法访问数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6910229/

10-13 07:34