您现在的位置是:首页 > 技术教程 正文

phptsudy的mysql的使用没有办法使用的问题解决

admin 阅读: 2024-03-16
后台-插件-广告管理-内容页头部广告(手机)

因为学校的实验需要用到phpstudy来生成环境,但是我电脑本身之前下载过mysql了,所以,旧的MySQL和phpstudy当中的MySQL起冲突了,导致新下载的phpstudy无法启动

讲述一下我解决的过程(写的有些长,因为自己在这次解决错误的过程当中也学到了不少)

我旧的sql是mysql8.0版本的,phpstudy自带的mysql是5.7版本的。

总的来说应该是有两个冲突的,一个是服务的冲突,一个是端口名称的冲突。先安装的mysql已经将mysql这个服务给占用了,所以后边的mysql就不能使用了。如果服务名不冲突的化,改个端口应该就可以同时运行了

还有少部分人是因为两个mysql服务都是开机自启动的问题。这个本质是端口冲突,

有两种办法解决

一。把服务改为手动,一次只开启一个

二。修改其中的一个MySQL的端口号

想起来mysql8.0版本默认的服务名是mysql80,结果我给改成了mysql,所以就冲突了,真想打一顿当时写教程的人,怎么没说phpstudy这回事。

还有写phpstudy的人能不能把程序写的健壮一些,不是所有人都有解决问题的能力的啊(仅仅吐槽)

一.将原本的sql的服务给删除

这个删除只是将你的服务给删除,也就是说没有办法运行,电脑不会再给这个为这个mysql服务了,但是数据库的信息还是在的,所以说不用担心数据的丢失

数据在mysql的date目录之下,可以自己去查看,并不会消失

里面的每个文件夹,对应一个数据库。

sc delete 服务名

一般的服务名就是MySQL,所以直接用MySQL就行,不会识别大小写差异

  1. sc delete mysql

如何找到和自己之前mysql配置相同的mysql服务名,建议最好还是去服务当中看一看,服务有两种打开方式,推荐下面的链接

Windows系统打开服务窗口(三种方式)_servicesmsc-CSDN博客

打开服务之后,鼠标右击,查看属性

会有可执行文件路径,记得对比一下和你之前的mysql安装的位置是不是一致的,记得把可执行文件的路径保存下来后面要用。还有记住你mysql的版本。

我保存一下

"E:\Software folder\web\MySQL Server 8.0\bin\mysqld" --defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini" mysql8.0

删除完之后就phpstudy就可以用了

有一点奇怪的是phpstudy并没有创建新的服务MySQL但是却可以正常启动

查看一下端口号的进程占用

netstat -ano | findstr 3307 

结果发现运行的好好的,但是就是没有服务,奇怪。(不造为啥,能用就行)

这个时候你登陆之前的MySQL会显示这个报错

所以要第二步配置服务

补充:MySQL5_pn是phpnow当中的,不是phpstudy创建的

讲一下一个地方的差异

正常的应该是这样的

两个可执行文件最后指向的文件是不一样的

E:\SecurityTools\phpnow\MySQL-5.0.90\bin\mysqld-nt.exe

E:\Software folder\web\MySQL Server 8.0\bin\mysqld

一个是mysqld-nt.exe一个是mysqld,不同的原因(有可能是版本的差异造成的,前者版本太早了)


  创建服务用:mysqld install 服务名

  启动服务用:net start 服务名

  停止服务用:net stop 服务名

  删除服务用:sc delete 服务名

启动和停止服务用net开头,和nt是不是很像(无端联想)

以下是MySQL-5.0.90\bin目录下的文件,并没有发现mysqld文件,再加上版本号过早,推测是mysqld-nt.exe最后改名成了mysqld.exe

查看8.0或者是5.7版本的,就会发现没有mysqld-nt.exe而有mysqld.exe文件

二.删除服务之后创建一个新的服务

使用管理员权限打开cmd命令窗口

然后跳转到你之前旧的MYSQL文件夹的bin目录下

然后查看mysql的版本,看看是不是你之前删除的那个MySQL服务的版本(因为我们执行的实际上值mysql\bin目录下的mysqld.exe文件,mysql版本不对,使用的mysqld.exe肯定也不一样)

执行创建服务的命令(先别执行,这个命令是要改的)

mysqld --install MySQLXY --defaults-file="C:\Program Files\MySQL\MySQL Server X.Y\my.ini"

先解释一下这个命令的含义:(我本身再网上没有找到相应的说明所以只能自己猜了)

MySQLXY是服务的名称,改成你想要的名称就行,随便起,我改的是mysql8.0

"C:\Program Files\MySQL\MySQL Server X.Y\my.ini"是你mysql的my.ini的文件地址

还记得我们之前保存的路径吗?

"E:\Software folder\web\MySQL Server 8.0\bin\mysqld" --defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini" mysql8.0

将后面这段-defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini"和命令当中的进行替换就行

这是我改后的代码,改完后就可以执行了

mysqld --install mysql8.0 --defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini"

执行出来的效果

可执行文件路径是

"E:\Software folder\web\MySQL Server 8.0\bin\mysqld" --defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini" mysql8.0

这样服务冲突就没有,只剩下端口冲突了,在phpstudy当中将端口号改变

然后启动刚才创建的服务,就可以在一台计算机上运行两台MySQL服务

如果服务没有启动成功,就看一下可执行文件的路径

和之前保存的对比一下是不是一样的,后面是我们配的,前面是mysqld系统服务自己加的

如果前后一致的话看看是不是my.ini当中的

datadir=E:/Software folder/web/MySQL Server 8.0\Data

和本地的路径不一致(突然想起来旧版的让自己配置服务的mysql了,都是自己之前配的啊)

补充:

为什么会有这个补充呢,我的就这样解决了,但我同学的照这个办法没有办法实现。

我在给他解决的时候他不敢删除服务,所以我换了种方法

就是给phpstudy当中的mysql创建一个服务,然后让他使用那个服务,不就不冲突了

可以在这里直接进入mysql系统自带的mysql当中

然后按照上述的方法进行mysql的配置,但不行,因为服务启动不起来,服务的可执行文件路径出了问题

"E:\Software folder\web\MySQL Server 8.0\bin\mysqld" --defaults-file="E:\Software folder\web\MySQL Server 8.0\my.ini" mysql8.0

这是正常的,会发现路径前面E:\Software folder\web\MySQL Server 8.0\是一致的

但他的不一致,他前面的和旧有的保持一致

思路一

可以使用这个命令来更给之前旧有的mysqld配置保留

mysqld --remove MySQL57

想法来源:Windows注册与删除mysql服务 - QiaoZhi - 博客园 (cnblogs.com)

但是我并没有执行,仅提供一种思路

思路二

还有另一种思路,找到注册表会发现这里的信息和服务当中的信息是一致的,更改这里的信息相当于更改注册表。

直接修改这里的信息

想法来源:教你彻底卸载MySQL 并重装(保姆级教程 )_mysql怎么卸载干净重装-CSDN博客

HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\Eventlog\Application\MySQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\MySQL
 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl001\Services\MYSQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl002\Services\MYSQL
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL

这是可能涉及的注册表,不懂的新手,建议慎重更改。

后话(一点唠叨):最后熬到两点也没有给他解决,然后就睡觉去了。不得不说,学计算机真的让人头秃,一点细小的差别,就可能导致全盘的错误。无法执行,找错误,是最花时间的,还有就是,我的windows基础相当的不扎实,对注册表和服务理解的都不咋样,操作系统是很重要的一门学科,得好好学。

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜