PHP无法连接mysql

PHP无法连接mysql,第1张

用户名密码不对。

如果你是在本地测试,有数据库管理权限,可以查看下有没有 bookhbw这个用户

select * from mysql.user

如果没有可以新建用户,或者在代码里直接使用root账户及密码连接(测试环境无所谓,如果是正式环境,一定要单独建一个用户,分配对应数据库的权限 )

-- 创建用户

create user bookhbw@'localhost' identified by '密码'

-- 授权用户指定的数据库权限

GRANT ALL PRIVILEGES ON 数据库名.* TO 'bookhbw'@'localhost'

-- 刷新权限

FLUSH PRIVILEGES

如果你的数据库中已经有这个账户,看下这个账户设置的Host 是localhost还是ip 还是 %

如果是ip 或者 % 则连接的服务器地址只能写ip 不能写localhost (可以新建一个同名用户绑定localhost)

以上情况,你根据自己的软件 配置,自行设置一下

故障状况:php网站连接mysql失败,但在命令行下通过mysql命令可登录并正常 *** 作。

解决方案:

1、命令行下登录mysql,执行以下命令:

复制代码

代码如下:show

variables

like

'socket'

执行后会得到类似于如下回显:

复制代码

代码如下:

"Variable_name"

"Value"

"socket"

"/home/mysql/data/mysql.sock"

2、编辑php.ini,找到mysql.default_socket配置项,默认一般是空值(使用编辑Mysql时设置的sock路径),将此项添加值为上面回显中的"/home/mysql/data/mysql.sock":

复制代码

代码如下:

Default

socket

name

for

local

MySQL

connects.

If

empty,

uses

the

built-in

MySQL

defaults.

mysql.default_socket

=

/home/mysql/data/mysql.sock

3、重启php。

问题:安装好phpstudy后,Apache可以启动,Mysql无法启动。原因:之前已经装过Mysql,要把系统服务里面的MySQL删除,留下MySQL服务。解决办法:在cmd命令行下输入:sc delete mysql即可删除mysql服务。当我们在cmd里使用 sc delete 服务名,来删除服务的时候,报错误,SC OpenService 失败5:拒绝访问,这似乎是因为权限不够。解决方法:第一步、我们必须先取得管理员权限,以管理员权限运行cmd.exe。第二步、在输入命令:sc delete 要删除的服务名phpstudy中apache或mysql无法启动phpstudy中apache或mysql无法启动,启动一下没了明显端口被占用了,假如我们需要确定谁占用了我们的80端口,3306端口对网站来说,网络apatche服务器是默认 80,数据库mysql是3306端口占有两种解决方法:法1:把被占用的 进程结束掉 (如果你没装iis的话,也就是 你把能关的软件都关闭 尤其迅雷什么的)法 2:改apatche 的端口具体如下:----------------------------------------法一、如何查看某个端口被谁占用,把被占用的 进程结束掉我们在启动应用的时候经常发现我们需要使用的端口被别的程序占用,但是我们又不知道是被谁占用,这时候我们需要找出“真凶”,如何做到呢?方法/步骤第一步:开始---->运行---->cmd,或者是window+R组合键,调出命令窗口第二步:输入命令:netstat -ano,列出所有端口的情况。在列表中我们观察被占用的端口,比如是49157,首先找到它。(对网站来说,网络apatche服务器是默认 80,数据库mysql是3306)第三步:查看被占用端口对应的PID,输入命令:netstat -aon|findstr "49157",回车,记下最后一位数字,即PID,这里是2720第四步:有两种方法1..续输入tasklist|findstr "2720",回车,查看是哪个进程或者程序占用了2720端口,结果是:svchost.exe2..或者是我们打开任务管理器,切换到进程选项卡,在PID一列查看2720对应的进程是谁,如果看不到PID这一列,如下图:则我们点击[查看]--->[选择列],将PID(进程标示符)前面的勾打上,点击确定。这样我们就看到了PID这一列标识,看一下2720对应的进程是谁,如果没有,我们把下面的显示所有用户的进程前面的勾打上,就可以看到了,映像名称是svchost.exe,描述是,Windows的主进程,与上面命令查看的完全一致。第五步:结束该进程:在任务管理器中选中该进程点击”结束进程“按钮,或者是在cmd的命令窗口中输入:taskkill /f /t /im Tencentdl.exe。-------------------------------------------------------------------------法二:phpstudy修改端口phpstudy控制面板中,点击 其他选项:将端口改为 8080但需要注意,修改端口后,在输入网址的时候,要带着端口如:(注意有冒号)localhost:8080localhost:8080/zz/index.php


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/6235333.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-18
下一篇 2023-03-18

发表评论

登录后才能评论

评论列表(0条)

保存