水戏树尘
代码只是创造的工具

早上为了解决数据库中配置文件和数据库管理类的连接问题,将基本的数据表配置写了一个单独的config.php文件,贴上代码:

//数据库连接配置
$db_config["hostname"]   ="localhost";
$db_config["username"]   ="root";
$db_config["password"]   ="root";
$db_config["database"]   ="ystory";
$db_config["charset"]  	 ="utf8";

   这个本没有问题的,但是数据库操作类中的连接函数,需要调用这个文件中的定义变量,直接采用【$this->_connect($db_config["hostname"],$db_config["username"],$db_config["password"],$db_config["database"]);】这种方式连接,使得浏览器运行报各种纠结的错误,大致的问题就是$db_config没有定义的问题,原以为config的路径没有引进去,打印出config.php的路径目录,那是正确的路径。有图有真相;

 

之后上网查各种方案,感觉是$db_config识别成为局部变量,于是想到在操作类中定义一下$db_config的全局变量。添加代码:global $db_config;于是这个问题比较顺利的解决了。

PHP的菜鸟真心伤不起,之后运行我的PHP项目出现[数据库持久连接失败! Access denied for user 'root'@'localhost' (using password: NO)]。修改mysql数据库中的user表,将root用户加上管理密码“root”,运行出现无法连接[数据库持久连接失败! Access denied for user 'root'@'localhost' (using password: YES)]。考虑到可能还有配置文件文件中的密码没有更改,寻找Wamp的配置文件,发现PHPMyAdmin中的“config.inc.php”中包含数据库的密码。将其更改。原以为能顺利的进入到系统中,却发现无妨访问Mysql的数据库。PHPMyadmin拒绝访问。继续修改其他app中的配置文件,将有可能存在密码的地方全部更改了。此时我凌乱了,完全不明白自己在解决什么问题了。关机重启一下,理一下思路继续修改。貌似我更改了数据库中mysql中的user表中的password字段。请教高手,运行我的Mysql控制台,我设置的mysql数据库密码方式错了,密码为“root”无法连接到Mysql数据库。高手解释说,mysql设置密码需要加password()函数。我凌乱了,我表示我彻底忘记了Mysql的密码,那好吧,就当我忘记了mysql的连接密码了。上网百度,修改方案:

1.关闭正在运行的MySQL,关闭wamp以及停止MYSQL的服务项;
2.打开DOS窗口(WIN+R)输入CMD 采用cd命令转进mysql\bin目录。
3.输入mysqld --skip-grant-tables回车。如果没有出现提示信息,那就对了。
4.重新打开一个DOS窗口(发现刚才那个DOS窗口不能动了),转到mysql\bin目录。
5.输入mysql回车,如果成功,将出现MySQL提示符 >
6. 连接权限数据库>use mysql; (>是本来就有的提示符,别忘了最后的分号)
7.改密码:> update user set password=password("root") where user="root"; (别忘了最后的分号)
8.刷新权限(必须的步骤)>flush privileges;
9.退出 > \q
10.注销系统,再进入,开MySQL,使用用户名root和刚才设置的新密码“root”登陆。注销还是启动不了MySQL服务的话,之前重启。

         自此,Mysql的连接问题完美解决,一时的疏忽,我表示我彻底凌乱了,幸亏在高手的指导下,掌握了一些MySql可能会出现的一些问题,已经一些常规的解决方案。虽然耽误了早上的时间,但我表示我以后可以自己解决Mysql的连接问题了。学习了…

posted on 2013-03-18 16:54  水戏树尘  阅读(498)  评论(0编辑  收藏  举报