起因:
用 root 账号密码访问 MySQL 服务器出现如下错误提示
- 检查远程访问权限
首先确认 MySQL 服务器是否允许来自 111.111.111.11 (假设当前设备的访问ip地址是这个)这个主机的远程连接。可以使用以下 SQL 查询语句查看当前权限设置:
SELECT User, Host FROM mysql.user;
发现 root 用户的远程访问权限没有添加我这个机器的ip
- 为远程主机添加访问权限
如果不存在可以允许远程连接的用户或权限不足,你可以通过以下 SQL 命令为特定主机添加访问权限
GRANT ALL PRIVILEGES ON *.* TO 'your_username'@'111.111.111.11' IDENTIFIED BY 'your_password' WITH GRANT OPTION;
- 刷新权限
FLUSH PRIVILEGES;
当然,如果不想更改 root 用户的远程访问权限,可以新建一个用户(我选择下面这种方案
)
- 创建新用户
CREATE USER 'newuser'@'111.111.111.11' IDENTIFIED BY 'password';
- 授予权限
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'111.111.111.11' WITH GRANT OPTION;
我这里给我当前设备授予所有权限,如果需要授权特定权限,可以自行修改。
例如,授予特定表的查询权限:
GRANT SELECT ON database_name.table_name TO 'username'@'host';
- 刷新权限
FLUSH PRIVILEGES;
最后使用自定义的MySQL用户访问数据库成功