本文介绍了ECS实例Linux系统中安装的MySQL无法通过公网连接的原因及解决方法。
问题现象
ECS实例Linux系统中安装了MySQL,无法通过公网连接MySQL。
问题原因
在ECS服务群里登录到MySQL数据库,执行SQL命令查看数据库用户配置。
登录MySQL数据库
登录MySQL数据库
mysql -uroot -p密码
use mysql;
select host,user from user;
如果看到user为root,host为localhost,说明MySQL只允许本机连接,外网就无法连接了数据库。
解决方案
执行如下命令,修改MySQL用户允许外网连接。
update user set host='%' where user ='root';
flush privileges;
说明
host='%' 表示允许所有IP连接,假如要限制只能通过1.1.1.1
的IP地址登录,则需要把%
改成1.1.1.1
,如果填%
则代表允许任何IP地址登录。
查看修改后的用户信息
新建数据库用户允许远程连接的方法:
CREATE USER 'newuser'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
flush privileges;
说明
*.* 第一个星号(*)为数据库占位符,如果填*
则代表所有数据库。第二个星号(*)为数据库表占位符,如果填*
则代表数据库中所有表。
'newuser'@'%' ,newuser为授权登录的数据库账户,百分号(%)为IP地址占位符。假如要限制只能通过1.1.1.1
的IP地址登录,则需要把%
改成1.1.1.1
,如果填%
则代表允许任何IP地址登录。
文档内容是否对您有帮助?