解决 MySQL 端口冲突:分步指南

等等,昨晚我安装了测试环境,忘记检查端口了,直接启动了。
结果我本地无法连接数据库。
查看日志发现端口繁忙。

检查端口冲突,其实挺烦人的。
记得第一次遇到的时候,我对命令行困惑了很长一段时间。
首先使用 ps aux | grep mysql 找到进程,然后密切关注PID并一一杀死它们。
有时一个人被杀了,另一个人又出现了,就像猫和老鼠一样。

最烦人的是,有时候kill没有反应,就得kill -9 ,但是用kill -9 总感觉不靠谱,就像把人逼下马一样。
MySQL数据存储不好怎么办?所以现在我习惯了先优雅地退出mysqladmin。

要检查端口覆盖范围,可以使用 lsof -i :3 3 06 当看到COMMAND=mysqld时,就知道是谁占用了。
但是,lsof 命令并非在所有系统上都可用。
您还可以使用 netstat -tulnp | 找到它。
grep 3 3 06
解决冲突后,重新启动服务。
如果MySQL是用Homebrew安装的,只需启动brew services mysql即可;如果是系统服务,只需 sudo systemctl start mysql 即可。
启动后,使用mysqladmin ping 测试。
在看到 mysqld 还活着之前不要担心。

有时重启不起作用,可能是配置文件中有多余的东西。
比如my.cnf中的端口改为3 3 07 ,虽然没有冲突,但是无法连接还是很烦人。
此时,检查 tail -f /usr/local/mysql/data/mysqld.local.err 查看错误日志,或者干脆将 my.cnf 恢复为默认值。

最后,预防胜于治疗。
现在要安装MySQL,首先要做的就是检查端口lsof -i:3 3 06 ,确认不忙后再启动。
还可以使用 mysql_secure_installation 来更改密码。
不要带着空白 root 密码到处乱跑。

嘿嘿,端口冲突的关键还是要小心。
大家想一想,如果一开始就检查端口,以后不会有问题吗?但话虽如此,为什么有人坚持安装两个MySQL呢?一个还不够吗?

网站MySQL 3306端口风险解决方法

说实话,MySQL3 3 06 端口确实有风险。
只有一个核心,不要让外人随意连接。
具体要做什么?
第一点就是直接禁用远程访问。
服务器直接关闭了3 3 06 端口,比如使用Windows防火墙,进入高级设置,找到本地3 3 06 端口的规则,直接点击禁用。
这样,其他人就无法从外部连接。
它简单粗暴但有效。

第二点,如果必须使用远程访问,请打开它以获取分配的IP。
例如,如果您公司中只有几台计算机需要连接,请将其设置为仅允许这些 IP 连接。
不要随意连接公共网络,这样不安全。

第三点是身份验证需要更强。
密码必须很复杂,包含所有大小写数字和特殊符号,并且很长,至少 1 2 位数字。
还需要使用SSL加密,MySQL配置文件中require_secure_transport=ON,这样整个连接都被加密,其他连接无法拦截数据包。
然后删除那些匿名用户和默认用户,不要保留给其他人使用。

第四点,MySQL一定要及时更新。
新版本修复了漏洞,启用了审计功能,并且每一次操作都会被记录下来,如果出现问题更容易排查。

第五点,还有更好的办法。
例如,使用SSH或VPN隧道,这些通道加密得更好。
直接转发本地端口并通过 SSH 发送流量比直接打开 3 3 06 端口安全得多。

总之,不要乱开放3 3 06 端口,安全第一。

MYSQL端口3306关闭了.请问怎么打开的?

记得上次在公司加班到半夜,面对电脑屏幕上的命令行界面,匆匆配置数据库。
系统提示需要先授权远程用户才能打开3 3 06 端口。
当我输入命令时,我嘟囔着为什么这些网络设置总是如此复杂。
我不记得确切的日期,但命令窗口上的红色警告文本“错误:找不到远程用户”就像针扎在我的眼睛里。
我赶紧打开用户管理界面,输入新的用户名和密码,然后回去运行命令“Grant ALL PRIVATE RIGHTS. LEAVE 'newuser'@'%' IDENTIFIED BY 'password'WITH GRANT OPTION;”,一行一行地复制粘贴,生怕漏掉一个字符。
当我终于看到“查询正常,0行受影响”时,我松了口气,手里的咖啡已经凉了一半。
等等,还有别的事。
看来为了保证命令能够正确执行,防火墙规则也被改变了。
我不记得具体更改了哪些规则,但我记得为了测试连接性,我在手机上安装了 SSH 客户端并进行远程连接。
事实证明,本地端口居然是开放的。
我想到如果几个月后再接触这个技术细节,可能又要花半天的时间来回忆和调试。