我使用这样的方式打印mysql_get_server_info()
:
<?php
echo 'MySQL Informtion';
echo mysql_get_server_info();
?>
但得到了
PHP warning mysql_get_server_info(): Access denied for user 'www-data'@'localhost (using password: NO)
作出回应。我正在使用PHP5.6
。造成这种情况的原因以及如何解决这个问题。
答案 0 :(得分:0)
link_identifier
:MySQL连接。如果链接标识符不是 指定,假设mysql_connect()打开的最后一个链接。如果不 找到这样的链接,它会尝试创建一个好像mysql_connect() 没有参数被召唤。如果没有找到连接或 建立后,将生成E_WARNING级别错误。
要解决此问题,您需要在致电mysql_connect
之前运行mysql_get_server_info
(使用正确的用户名,密码等)。
答案 1 :(得分:0)
问题是您不能使用应用的默认设置与数据库服务器进行交互。
来自mysql_get_server_info([$link_identifier])
的文档:
link_identifier:MySQL连接。如果未指定链接标识符,则假定mysql_connect()打开的最后一个链接。 如果没有找到这样的链接,它将尝试创建一个,就好像没有参数调用mysql_connect()一样。如果没有找到或建立连接,则会生成E_WARNING级别错误。
由于您未指定任何连接且可能之前未打开过(至少您的代码未指定),因此使用带有默认参数的mysql_connect
自动创建连接。如果SQL安全模式处于活动状态,则用户名是服务器进程的所有者(您无法覆盖),否则,用户名在mysql_default_user
中指定,您可以通过指定用户来覆盖该用户名。
要解决此问题,请使用mysql_connect
显式打开与服务器的连接,或修改数据库配置,以便可以使用隐式创建的连接。
BTW:不推荐使用PHP的mysql
API,而选择mysqli
或PDO
。