mysql8 授权远程登录_MySQL8 远程授权访问

本文介绍如何在MySQL8中正确配置远程访问权限。当尝试使用传统语法授权时遇到1064错误,需要采用新的授权语句。文章提供了解决方案及官方文档链接。

在测试环境,想实现MySQL 8 数据库的远程访问授权。

传统的方法已经不行,报1064错误

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

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 'IDENTIFIED BY '123456' WITH GRANT OPTION' at line 1

需要使用新的语句。

GRANT ALL  ON *.* TO 'root'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

参考:https://dev.mysql.com/doc/refman/8.0/en/grant.html

### 配置 MySQL 5.7 以允许远程登录 在 Linux 系统中配置 MySQL 5.7 以支持远程登录,需要完成以下几项关键操作:设置 MySQL 的用户权限、修改 MySQL 配置文件以允许远程访问、确保防火墙规则正确以及验证连接。以下是详细的说明: #### 1. 查看初始随机密码 MySQL 5.7 在安装后会为 root 用户生成一个临时密码。可以通过以下命令查看该密码: ```bash grep 'temporary password' /var/log/mysqld.log ``` 此步骤对于首次登录 MySQL 至关重要[^3]。 #### 2. 登录 MySQL 并更改密码 使用初始密码登录 MySQL,并设置一个新的强密码: ```bash mysql -u root -p ``` 在 MySQL 命令行中执行以下语句以更改密码(请将 `new_password` 替换为实际的密码): ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password'; ``` #### 3. 创建远程访问用户 为了允许从其他主机访问 MySQL 数据库,需要创建一个具有远程访问权限的用户。例如,创建一个名为 `myuser` 的用户,允许从 IP 地址为 `192.168.1.3` 的主机访问: ```sql CREATE USER 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 如果希望允许从任意主机访问,可以将 IP 地址替换为 `%`: ```sql CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword'; GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 上述命令中的 `ALL PRIVILEGES` 表示授予所有权限,可以根据实际需求调整权限范围[^4]。 #### 4. 修改 MySQL 配置文件 编辑 MySQL 的配置文件 `/etc/my.cnf` 或 `/etc/mysql/my.cnf`,找到并注释掉或修改以下行以允许远程连接: ```ini # bind-address = 127.0.0.1 bind-address = 0.0.0.0 ``` 保存文件后重启 MySQL 服务以应用更改: ```bash systemctl restart mysql ``` 或者: ```bash service mysql restart ``` #### 5. 配置防火墙规则 确保服务器的防火墙允许外部访问 MySQL 默认端口(3306)。例如,在使用 `iptables` 或 `firewalld` 的情况下,添加以下规则: ```bash firewall-cmd --permanent --add-port=3306/tcp firewall-cmd --reload ``` 或者使用 `ufw`: ```bash ufw allow 3306/tcp ``` #### 6. 测试远程连接 从另一台主机上使用 MySQL 客户端测试连接: ```bash mysql -u myuser -p -h <MySQL_Server_IP> ``` 输入密码后,如果成功进入 MySQL 命令行,则表示配置成功。 --- ### 注意事项 - 确保 MySQL 的 root 用户仅用于本地管理,避免直接暴露给远程访问。 - 如果数据库中存储了敏感数据,请使用 SSL/TLS 加密连接以增强安全性。 - 定期检查和更新防火墙规则,防止未经授权访问。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值