Discuz论坛 启动报错(1045) notconnect 解决方法

  论坛搭建完成后,本觉得能够愉快地搞事了,没想到次日一登陆 duang~ Big Suprisej_0004.gifmysql

9ff71d45df99259fbf0770333daa63bd.jpg-wh_

重启Apache...无效sql

重启MySQL...无效数据库

重启PHP服务...无效安全

重启服务器...无效服务器

i_f34.gif

得,有的忙了...ssh

首先百度嘛,看看有撒子解决方案,结果一搜相关的网页还很多,顿时有一种不祥的预感..可能得走弯路,最好仍是缩小范围吧t_0012.gifide

再次看了一下报错代码测试

1:init()方法报错  //初始化功能
this

2:_init_db()方法报错 //初始化数据库3d

第四行和第五行都是数据库链接报错,至此都能看出来应该是Discuz无法正常链接MySQL数据库致使的

接着百度,重点看那些和数据库链接有关的帖子

最终在http://www.haosblog.com/article/read?aid=510

这个blog上面找到和我相似的状况,并且还有解决方案,好,测试搞起

首先在ssh客户端试试能不能链接数据库

92fb7da736fbe255c1e9e7178ead1dd1.jpg-wh_

结果还真是无法链接,看到文章中说用户的主机域为%

忽然想起来以前搭建论坛的时候为了方便管理数据库,准备用Navicat链接数据库,结果一直报错:

“host ... is not allowed to connect to this MySql server”

后来使用了改表法

mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>exit;

而后就能够用Navicat链接了,这么一来应该就是这个通配符%的问题,好在Navicat还能够正常链接数据库

因而进入mysql数据库,user表中将root用户的%修改成localhost

a2f9c14857a19e0d94e86ed4e0fd7900.jpg-wh_

提交之,接着systemctl restart mysql重启mysql服务

8181ac52a56c9959d8ab941c111f6520.jpg-wh_

t_0001.gif

关于这个问题解释是

“部分版本的mysql中%不包括localhost,须要新建一个在localhost域受权的用户”

But这样的话...那我岂不是无法用Navicat链接数据库了?不行我拒绝

接着找方法

发现还有一种受权法,测试之(下面这个为容许全部主机链接,不安全实际不建议使用,还有其它两种,下文附)

Shell>mysql -u root -p"yourpassword" 
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;                      //受权root用户在任意IP都可登陆
mysql>FLUSH PRIVILEGES;           //刷新权限
mysql>exit

               

改完以后用Navicat测试能够链接,为了确保万一,重启MySQL服务而后测试链接

重启链接正常

e8f6744e3ec317aba1df9c49912239fb.jpg-wh_


附:

1:你想user使用yourpassword从任何主机链接到mysql服务器的话。

mysql>GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

2:若是你想容许用户user从ip为192.168.1.6的主机链接到mysql服务器,并使用yourpassword做为密码

mysql>GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.3' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

3:若是你想容许用户user从ip为192.168.1.6的主机链接到mysql服务器的test数据库,并使用yourpassword做为密码

mysql>GRANT ALL PRIVILEGES ON test.* TO 'user'@'192.168.1.3' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;

---END---



(Tip:以上流程对本人测试环境可用,不保证全部状况下均有效)

相关文章
相关标签/搜索