3306端口被占用了怎么办
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了3306端口被占用了怎么办相关的知识,希望对你有一定的参考价值。
1、打开phpSTUDY,如图所指,这个就是PHPSTUDY软件
2、进入phpstudy界面,用鼠标右键点击【开始】,红框中已经标出。
3、用鼠标右键点击【重启】,会出现【重启Apache】与【重启mysql】。
4、我们先点击【重启Apache】,在提示信息中我们可以看到Apache已经启动。
5、重启MySQL后,提示信息会提示MySQL已经启动。
参考技术A1、打开PHPSTUDY,这个就是PHPSTUDY软件。
2、进入phpstudy界面,用鼠标右键点击【开始】,红框中已经标出。
3、用鼠标右键点击【重启】,会出现【重启Apache】与【重启MySQL】。
4、我们先点击【重启Apache】,在提示信息中我们可以看到Apache已经启动。
5、然后我们再点击【重启MySQL】,为了确保程序正常启动,大家最好都启动一下。
6、重启MySQL后,提示信息会提示MySQL已经启动。
参考技术B 开始-运行-cmd, 输入 netstat -ano, 看第一列,后面的就是端口,找到80 ,记住对应的PID!!然后打开任务管理器 查看 -> 选择列 -> 勾上 PID(进程标识符) -> 确定
在任务管理器找到刚才的PID的进程,查看是什么程序占用了端口,把它关闭!!!追问但是4896显示的进程是tomcat6 关闭以后调试没反应啊
回答上面的英文显示 tomcat 已经在另一个进程中运行了, 您再打开就已经重复了。。。是否运行了其他服务器程序,附带启动了comcat 进程
严重: Error starting endpoint
java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.tomcat.util.net.PoolTcpEndpoint.initEndpoint(PoolTcpEndpoint.java:298)
at org.apache.tomcat.util.net.PoolTcpEndpoint.startEndpoint(PoolTcpEndpoint.java:313)
at org.apache.coyote.http11.Http11BaseProtocol.start(Http11BaseProtocol.java:151)
at org.apache.coyote.http11.Http11Protocol.start(Http11Protocol.java:76)
at org.apache.catalina.connector.Connector.start(Connector.java:1090)
at org.apache.catalina.core.StandardService.start(StandardService.java:457)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
2009-7-12 15:40:35 org.apache.catalina.startup.Catalina start
严重: Catalina.start:
LifecycleException: service.getName(): "Catalina"; Protocol handler start failed: java.net.BindException: Address already in use: JVM_Bind:8080
at org.apache.catalina.connector.Connector.start(Connector.java:1097)
at org.apache.catalina.core.StandardService.start(StandardService.java:457)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:700)
at org.apache.catalina.startup.Catalina.start(Catalina.java:552)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:295)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:433)
2009-7-12 15:40:35 org.apache.catalina.startup.Catalina start
信息: Server startup in 9860 ms
关键信息:
java.net.BindException: Address already in use: JVM_Bind:8080
错误原因:
8080端口被其他的应用占用!
解决方案:
第一步,命令提示符号,执行命令:netstat –ano
Active Connections
Proto Local Address Foreign Address State PID
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656
TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 656
可见,占用8080端口的进程的PID是656
第二步,命令提示符号,执行命令:tasklist
图像名 PID 会话名 会话# 内存使用
========================= ====== ================ ======== ============
TNSLSNR.exe 656 Console 0 8,992 K
可见,该占用8080端口的进程是TNSLSNR.exe
第三步,通过任务管理器,终止进程TNSLSNR.exe
第四步,重新启动tomcat,即可正常启动 参考技术C 1,按WIN+R,在运行框中输入:CMD,点击确定。
2,在CMD窗口,输入:netstat -ano,回车,即可查看所有的端口占用情况。
3,在CMD窗口,输入:netstat -aon|findstr "端口" ,回车,查看指定端口的占用情况。
4,然后看到占用端口的软件的PID后,在CMD窗口,输入:tasklist|findstr "PID号",即可看到占用了端口的程序名称。
5、在CMD窗口,输入:taskkill /f /t /im 程序名称,回车,结束该进程。 参考技术D 如果是window系统,用fport软件可以看到是哪个程序在使用3306端口。如果是linux系统,用netstat -anp可以看到使用3306端口的程序,如果不是mysql就删除之。
如何解决端口被占用问题
1、Windows平台在windows控制台窗口下执行:
netstat -nao | findstr "9010"
TCP 127.0.0.1:9010 0.0.0.0:0 LISTENING 3017
你看到是PID为3017的进程占用了9010端口,如果进一步你想知道它的进程名称,你可以使用如下命令:
tasklist | findstr "3017"
如果你想杀死这个进程,你当然可以用前面描述的那种方法,在任务管理器里把它KILL了,但如果你喜欢高效一点,那么用taskkill命令就可以了。
taskkill /pid 3017
那么这个进程就灰灰湮灭了:)
2、Linux
如果你是个Linux爱好者,那个这个命令你应该很熟了,
netstat -pan | grep 9010
如果你稍微仔细一点,你会发现,用的都是netsta命令,事实上,netstat是一个比较通用的网络统计命令,几乎适用于所有现在流行的操作系统,无论是Linux,Window,还是其他Unix,或者Unix-like操作系统,而且用法基本一致。
下面是一个对Windows系统中netstat命令行参数的详细解释。
格式:
netstat [-a] [-e] [-n] [-o] [-p Protocol] [-b] [-r] [-s] [-v] [Interval]
参数说明:
-a 显示所有连接和监听端口。-n 以数字形式显示地址和端口号。
-o 显示与每个连接相关的所属进程 ID。
-p 在Windows系统中,该选项用于指定默认情况的子集。proto 显示 proto 指定的协议的连接;proto 可以是下列协议之一: TCP、UDP、TCPv6 或 UDPv6。
如果与 -s 选项一起使用以显示按协议统计信息,proto 可以是下列协议之一:IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-b 显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件拥有多个独立组件,并且在这些情况下; 包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP 部分。注意此选项
可能需要很长时间,如果没有足够权限可能失败。
-e 显示以太网统计信息。此选项可以与 -s选项组合使用。
-s 显示按协议统计信息。默认地,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息。
-r 显示路由表。
-v 与 -b 选项一起使用时将显示包含于为所有可执行组件创建连接或监听端口的组件。
interval 重新显示选定统计信息,每次显示之间暂停时间间隔(以秒计)。按 CTRL+C 停止重新显示统计信息。如果省略,netstat 显示当前
配置信息(只显示一次)。 参考技术A 你可以进行如下操作1. 在“运行”中输入CMD2.在启动的窗口中输入netstat -ano,就可以看到所有端口占用的情况,记下占用8080端口的程序的PID3.打开“任务管理器”,点击菜单栏的“查看”,再点击“选择列”,选上“PID(进程标识符)”4.在进程中找个相应的PID值,结束进程即可或者你在配置文件中将8080改成其他端口本回答被提问者采纳
以上是关于3306端口被占用了怎么办的主要内容,如果未能解决你的问题,请参考以下文章