问题说明
使用 MySQL GUI 连接腾讯云的 MySQL 服务器连接失败,经查是由三个原因引起的:
- 云服务器未配置安全组,开通 3306 端口。
- 数据库默认只允许本地连接,拒绝远程连接。
- 所使用 root 账号无远程连接权限,需要设置权限,或新建账号用于远程连接。
解决方法和步骤
创建远程连接账号,给 root 开通远程连接权限
- 登录 MySQL
mysql -u root -p
- 查看当前 MySQL 账户
SELECT `user`,`host` FROM mysql.user;
输出:
+------------------+-----------+
| user | host |
+------------------+-----------+
| debian-sys-maint | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
- 创建新用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
注意:
@
左边是用户名,右边是域名、IP 和%
,表示可以访问 mysql 的域名和 IP,% 表示外部任何地址都能访问。
- 给新用户和 root 赋值所有权限
-- 给新用户权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';
-- 给 root 用户权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
-- 或
UPDATE USER SET `host`='%' WHERE `user`='root';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
出于严格的安全考虑的话,生产环境请将 % 换成特定的 IP。
查看修改后账户信息:
SELECT `user`,`host` FROM mysql.user;
- 立即刷新权限
FLUSH PRIVILEGES;
更改 MySQL 配置,允许远程连接
MySQL 无法连接的可能原因是服务器防火墙未放开 3306 端口,或 MySQL 服务器禁止远程连接了。
- 查看 3306 端口是否开放
netstat -an | grep 3306
tcp6 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
如上表示 3306 端口并未打开。进入 MySQL 配置目录:/etc/mysql/mysql.conf.d/,编辑配置文件:
cd /etc/mysql/mysql.conf.d
sudo vim mysqld.cnf
MySQL 默认只允许本地服务器访问,注释以下配置:
# bind-address = 127.0.0.1
保存并退出,然后重启 MySQL 服务:
sudo service mysql stop
sudo service mysql start
设置腾讯云安全组,开放 MySQL 3306 端口
添加如下规则:
添加完成后关联服务器实例即可。
使用 GUI 工具连接 MySQL
至此,就可以成功连接 MySQL 了~
这里服务器系统是 Ubuntu,MySQL 的配置路径也是默认的,根据实际情况处理。
本文来自博客园,作者:大码王,转载请注明原文链接:https://www.cnblogs.com/huanghanyu/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2020-05-12 clickhouse入门到实战及面试(三)