之前本机安装了mysql5.5,端口是3306,后来要弄php,就装了个php的集成环境wampserver,这个自带mysql5.6.12,因为我的mysql5.5一直是运行着的,看网上,人家安装wampserver都会报错,wampserver的mysql默认也是3306,因为端口冲突,导致wampserver的mysql不能启动。而我的比较奇怪,两个mysql都同时运行在3306端口,网上查了一番没有看到类似的情况。按我之前的理解,一个端口只能被一个进程监听。也听说过一种端口共享的技术,但是这个要windows服务的支持,我本机没有开启这个服务。
有图为证
共有两个进程,2372和1048监听3306,从资源管理器里打开进程文件位置,1048是wampserver的mysql,2372是我之前自己安装的mysql
在命令行下运行mysql -h localhost -u root -p会连接到1048,运行mysql -h 127.0.0.1 -u root -p会连接到2372。
求解
2个mysql都能正常启动?windows下SO_REUSEADDR,linux下SO_REUSEPORT。开启后同一个端口即可多次绑定&监听(需每个套接字都开启)。那客户端来一个请求,谁来响应呢?我也遇到了,郁闷。我说怎么老连不进wampserver的数据库。老百度不到原因,想着看看端口。一看吓一跳,居然可以两个PID占用3306端口。搜索才发现你,才知道端口复用这种情况。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。