本文介绍ECS实例中的MySQL安装后登录正常,但远程连接MySQL数据库时失败,提示“1045 - Access denied for user 'root'@'****'(using password:YES)”错误的解决方案。
问题现象
ECS实例中的MySQL安装后登录正常,但使用相同账号和密码远程连接MySQL数据库时失败,提示“1045 - Access denied for user 'root'@'****'(using password:YES)”错误(确认已输入正确账号和密码)。
问题原因
在ECS实例中安装MySQL后,MySQL默认只允许在本机登录,MySQL数据库未授权其它远程IP地址登录。
解决方案
请参考以下操作步骤,增加远程IP地址访问MySQL的授权。
远程连接ECS实例。
具体操作,请参见连接方式概述ECS远程连接操作指南。
登录MySQL数据库,然后执行如下授权SQL命令,授权远程登录MySQL数据库权限。
CREATE USER 'newuser'@'%' IDENTIFIED BY '密码'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION;
说明执行该授权SQL命令后,新创建的'newuser'用户可以从任何IP地址登录数据库,操作任何数据库中的任何对象。为加强数据库登录安全,建议授权固定的远程IP登录。
SQL命令参数说明如下表:
参数
描述
*.*
第一个星号(*)为数据库占位符,如果填
*
则代表所有数据库。第二个星号(*)为数据库表占位符,如果填*
则代表数据库中所有表。'newuser'@'%'
newuser为授权登录的数据库账户,百分号(%)为IP地址占位符。假如要限制只能通过
1.1.1.1
的IP地址登录,则需要把%
改成1.1.1.1
,如果填%
则代表允许任何IP地址登录。执行如下SQL语句刷新权限。
flush privileges;
重新远程连接MySQL数据库,若不再提示以上报错信息,则表示问题已修复。
文档内容是否对您有帮助?