mysql8.0远程访问授权

本文详细介绍了在MySQL8.0中设置远程访问时可能遇到的语法错误及授权问题,提供了创建远程用户、授权及修改验证方式的步骤,确保Navicat等工具能够顺利连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在安设置mysql8.0远程访问过程中遇到的问题:

1、ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '. to 'username'@'%'' at line 1

解决方案:

1、新建远程访问用户:create user 'username'@'%' identified by 'password';

2、给远程访问用户授权:GRANT ALL PRIVILEGES ON *.* TO 'username'@'%';

3、刷新权限:FLUSH PRIVILEGES;

2、ERROR 1410 (42000): You are not allowed to create a user with GRANT

msyql8.0好像自己给自己授权不行了,新建一个账号吧,并给这个账号授权。
 

最后还有一个问题,如果用Navicat连接的回报不支持caching_sha2_password验证方式的错误。

将远程访问用户的验证方式改为: msyql_native_password 

执行:

ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

FLUSH PRIVILEGES;

### 配置 MySQL 8.0 实现远程连接 为了使 MySQL 8.0 支持远程连接,需按照特定流程调整服务器配置并赋予相应用户的适当权限。 #### 修改用户权限 进入 MySQL 控制台后,切换至 `mysql` 数据库: ```sql USE mysql; ``` 更新目标用户的主机字段以便接受来自任何 IP 地址的请求: ```sql UPDATE user SET host = '%' WHERE user = 'root'; ``` 刷新权限以应用更改: ```sql FLUSH PRIVILEGES; ``` 授予指定用户全局范围内的全部操作权限,并启用授予权限功能: ```sql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; ``` 再次刷新权限确保最新设置生效[^5]。 #### 编辑 my.cnf 文件 找到 MySQL 的配置文件 `my.cnf` 或者 `my.ini`(视操作系统而定),通常位于 `/etc/mysql/` 或 `/etc/my.cnf.d/server.cnf` 下。编辑此文件中的 `[mysqld]` 节点部分,取消绑定地址限制或将其更改为服务器的实际公网 IP: ```ini bind-address=0.0.0.0 ``` 保存修改后的配置文件并退出编辑器[^1]。 #### 设置防火墙规则 确认系统的防火墙已开放 MySQL 默认端口 (3306) ,对于 Linux 系统可利用命令行工具如 ufw 添加新规则: ```bash sudo ufw allow 3306/tcp ``` 对于 Windows Server,则通过高级安全Windows Defender防火墙界面新增入站规则来放通TCP协议下的3306端口号[^2]。 #### 重启 MySQL 服务 最后一步是重新启动 MySQL 服务使得上述所有改动能够立即起效,在Linux上可以通过以下命令完成这项工作: ```bash sudo systemctl restart mysqld.service ``` 而在 Windows 上则应该前往“服务”管理器里右键点击 MySQL 对应的服务项选择“重启”。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值