分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

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

发布时间:2023-09-06 01:21责任编辑:蔡小小关键词:Discuz

  论坛搭建完成后,本以为可以愉快地搞事了,没想到第二天一登录 duang~ Big Suprise650) this.width=650;" src="http://img.baidu.com/hi/jx2/j_0004.gif" alt="j_0004.gif" />

650) this.width=650;" src="https://s4.51cto.com/oss/201710/30/9ff71d45df99259fbf0770333daa63bd.jpg-wh_500x0-wm_3-wmp_4-s_3367779617.jpg" title="Error.jpg" alt="9ff71d45df99259fbf0770333daa63bd.jpg-wh_" />

重启Apache...无效

重启MySQL...无效

重启PHP服务...无效

重启服务器...无效

650) this.width=650;" src="http://img.baidu.com/hi/face/i_f34.gif" alt="i_f34.gif" />

得,有的忙了...

首先百度嘛,看看有撒子解决方案,结果一搜相关的网页还不少,顿时有一种不祥的预感..可能得走弯路,最好还是缩小范围吧650) this.width=650;" src="http://img.baidu.com/hi/tsj/t_0012.gif" alt="t_0012.gif" />

再次看了一下报错代码

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

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

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

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

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

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

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

650) this.width=650;" src="https://s4.51cto.com/oss/201710/30/92fb7da736fbe255c1e9e7178ead1dd1.jpg-wh_500x0-wm_3-wmp_4-s_1192653540.jpg" title="sql.jpg" alt="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>select host, user from user;

然后就可以用Navicat连接了,这么一来应该就是这个通配符%的问题,好在Navicat还可以正常连接数据库

于是进入mysql数据库,user表中将root用户的%修改为localhost

650) this.width=650;" src="https://s3.51cto.com/oss/201710/30/a2f9c14857a19e0d94e86ed4e0fd7900.jpg-wh_500x0-wm_3-wmp_4-s_3738862734.jpg" title="NAVI2.jpg" alt="a2f9c14857a19e0d94e86ed4e0fd7900.jpg-wh_" />

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

650) this.width=650;" src="https://s2.51cto.com/oss/201710/30/8181ac52a56c9959d8ab941c111f6520.jpg-wh_500x0-wm_3-wmp_4-s_850961994.jpg" title="ok.jpg" alt="8181ac52a56c9959d8ab941c111f6520.jpg-wh_" />

650) this.width=650;" src="http://img.baidu.com/hi/tsj/t_0001.gif" alt="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服务然后测试连接

重启连接正常

650) this.width=650;" src="https://s2.51cto.com/oss/201710/30/e8f6744e3ec317aba1df9c49912239fb.jpg-wh_500x0-wm_3-wmp_4-s_2999560579.jpg" title="ccc6.jpg" alt="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:以上流程对本人测试环境可用,不保证所有情况下均有效)

本文出自 “达达的笔记” 博客,请务必保留此出处http://mikeyoo.blog.51cto.com/13423337/1977336

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

原文地址:http://mikeyoo.blog.51cto.com/13423337/1977336

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved