mysql帐号不允许从远程登陆

本文介绍两种方法设置MySQL可通过远程主机连接:一是更新mysql.user表中host字段为'%';二是使用GRANT命令授权指定用户从特定主机连接。并提供了解决防火墙限制的方法。

默认情况下,mysql帐号不允许从远程登陆,只能在localhost登录。本文提供了二种方法设置mysql可以通过远程主机进行连接。 
一、改表法 
在localhost登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,将”localhost”改称”%”

例如: 
  

#mysql -u root -p
Enter password:
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
  • 1
  • 2
  • 3
  • 4

二、授权法 
例如: 你想myuser使用mypassword(密码)从任何主机连接到mysql服务器的话。

  mysql>GRANT ALL PRIVILEGES ON . TO ‘myuser’@’%’IDENTIFIED BY ‘mypassword’ WITH GRANT OPTION;

  如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码

mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES
  • 1
  • 2

  使修改生效,就可以了

如果还不能连接,就可能是防火墙的锅了。.

#通过systemctl status firewalld查看firewalld状态
#FirewallD is not running
systemctl unmask firewalld            

systemctl start firewalld
#再次通过systemctl status firewalld查看firewalld状态,显示running即已开启了。
#再次执行执行firewall-cmd --permanent --zone=public --add-port=3306/tcp,提示success,表示设置成功,这样就可以继续后面的设置了。
firewall-cmd --reload


systemctl stop firewalld.service   #关闭防火墙

转载于:https://www.cnblogs.com/chentailin/p/9214031.html

### 配置 MySQL 8 允许 Root 用户远程登录 #### 修改 MySQL 的配置文件 为了使 MySQL 支持远程连接,需编辑 MySQL 的配置文件 `my.cnf` 或者 `mysqld.cnf` 文件。通常位于 `/etc/my.cnf.d/`, `/etc/mysql/conf.d/` 或者 `/etc/my.cnf`. 找到 `[mysqld]` 下面加入或修改 bind-address 参数为服务器 IP 地址或者注释掉这行以监听所有接口。 ```ini # /etc/my.cnf or similar location [mysqld] bind-address = 0.0.0.0 ``` #### 创建并授权用户访问权限 进入 MySQL 命令行工具: ```bash mysql -u root -p ``` 创建新用户用于远程访问,并赋予相应权限[^2]: ```sql CREATE USER 'root'@'%' IDENTIFIED BY 'your_strong_password'; GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES; ``` 对于已存在的 root 账户,更新其主机字段以便可以从任意地址连接[^4]: ```sql USE mysql; UPDATE user SET host='%' WHERE user='root'; ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'your_secure_password'; FLUSH PRIVILEGES; ``` 注意:出于安全考虑,建议要直接给 root 用户分配远程访问权限;而是创建一个新的具有适当权限的专用远程管理账号。 #### 更改身份验证插件 由于 MySQL 8 默认采用 caching_sha2_password 插件作为默认的身份验证方法,部分旧版客户端可能无法兼容。可以通过更改用户的认证方式来解决这个问题: ```sql ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password'; FLUSH PRIVILEGES; ``` 最后重启 MySQL 服务应用变更: ```bash systemctl restart mysqld.service ``` 确保防火墙开放了 MySQL 端口(通常是3306),如果启用了 SELinux,则还需要调整策略允许网络流量到达 MySQL 服务。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值