使用 MySQL GUI 连接腾讯云的 MySQL 服务器连接失败,经查是由三个原因引起的:
mysql -u root -pCopy
SELECT `user`,`host` FROM mysql.user;Copy
输出:
+------------------+-----------+ | user | host | +------------------+-----------+ | debian-sys-maint | localhost | | mysql.session | localhost | | mysql.sys | localhost | | root | localhost | +------------------+-----------+ Copy
CREATE USER 'username'@'%' IDENTIFIED BY 'password';Copy
注意:
@
左边是用户名,右边是域名、IP 和%
,表示可以访问 mysql 的域名和 IP,% 表示外部任何地址都能访问。
-- 给新用户权限 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';Copy
出于严格的安全考虑的话,生产环境请将 % 换成特定的 IP。
查看修改后账户信息:
SELECT `user`,`host` FROM mysql.user;Copy
FLUSH PRIVILEGES;Copy
MySQL 无法连接的可能原因是服务器防火墙未放开 3306 端口,或 MySQL 服务器禁止远程连接了。
netstat -an | grep 3306Copy
tcp6 0 0 127.0.0.1:3306 0.0.0.0:* LISTENCopy
如上表示 3306 端口并未打开。进入 MySQL 配置目录:/etc/mysql/mysql.conf.d/,编辑配置文件:
cd /etc/mysql/mysql.conf.d sudo vim mysqld.cnfCopy
MySQL 默认只允许本地服务器访问,注释以下配置:
# bind-address = 127.0.0.1Copy
保存并退出,然后重启 MySQL 服务:
sudo service mysql stop sudo service mysql startCopy
添加如下规则:
添加完成后关联服务器实例即可。
至此,就可以成功连接 MySQL 了~
这里服务器系统是 Ubuntu,MySQL 的配置路径也是默认的,根据实际情况处理。