一、MySQL连接方式详解
1. Socket连接(本地连接)
- 适用场景:客户端与MySQL服务运行在同一台服务器时使用。
- 连接命令:
mysql -u用户名 -p密码 -hlocalhost -S /path/to/socket.sock
- -h localhost:指定本地主机。-S:指定Socket文件路径(默认路径如/var/lib/mysql/mysql.sock或/tmp/mysql.sock)
。
- 特点:无需网络配置,性能较高(基于IPC通信)。仅限本地访问,无法跨服务器使用
。
2. TCP/IP连接(远程连接)
- 适用场景:跨服务器访问数据库。
- 连接命令:
mysql -u用户名 -p密码 -h远程IP -P端口号
- -h:目标服务器IP地址。-P:MySQL服务端口(默认3306)。
- 特点:需配置网络白名单(授权特定IP访问)。依赖网络连通性及防火墙规则
。
二、TCP/IP远程连接的关键配置
1. 授权白名单用户
- 步骤:创建用户并指定允许的IP:
CREATE USER 'username'@'192.168.1.%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON database.* TO 'username'@'192.168.1.%';
FLUSH PRIVILEGES;
- %表明允许该IP段访问,192.168.1.100可替换为具体IP
。
- 修改MySQL配置文件:
ini
复制
[mysqld]
bind-address = 0.0.0.0 # 允许所有IP连接(默认127.0.0.1仅本地)
- 重启MySQL服务:
systemctl restart mysql
2. 防火墙与网络配置
- 开放端口:
ufw allow 3306/tcp # Ubuntu/Debian
firewall-cmd –add-port=3306/tcp –permanent # CentOS
- 验证连通性:
telnet 远程IP 3306 # 检查端口是否开放
三、连接参数说明
|
参数 |
说明 |
示例 |
|
-u |
用户名 |
-uroot |
|
-p |
密码(输入时隐藏) |
-pYourPass123 |
|
-h |
主机地址(默认localhost) |
-h192.168.1.100 |
|
-P |
端口号(默认3306) |
-P3307 |
|
-S |
Socket文件路径(仅本地) |
-S/tmp/mysql.sock |
四、常见问题与优化提议
1. 连接失败排查
- 错误提示:Can't connect through socket:检查Socket路径或权限
。
- Access denied:确认用户权限及IP白名单
。
- Too many connections:调整max_connections参数
。
2. 性能优化
- 连接池管理:使用HikariCP、Druid等工具复用连接,减少创建开销
。
- 参数调优:wait_timeout:控制空闲连接超时(默认8小时)。thread_cache_size:缓存线程数,减少线程创建
。
五、总结
- 本地连接优先使用Socket,高效且无需网络配置。
- 远程连接需通过TCP/IP并配置白名单,确保安全性和网络可达性。
- 定期监控连接状态(SHOW PROCESSLIST)和资源使用(max_connections),结合连接池和参数调优提升性能。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...