CentOS 8 设置 MySQL 8 允许远程访问

1、 配置 /etc/my.cnf
vim /etc/my.cnf

添加如下内容:
bind-address=0.0.0.0

2、设置用户权限
#登录MySQL
[root@sionas.com /]# mysql -u root -p
输入密码:


#### 允许远程访问(授权给所有ip)
mysql>CREATE USER 'root'@'%' IDENTIFIED BY 'password'; //此操作mysql 8.0中必须加
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;  //任何远程主机都可以访问数据库 

mysql>FLUSH PRIVILEGES;


3、设置防火墙
$ firewall-cmd --zone=public --add-port=3306/tcp --permanent
$ firewall-cmd --reload
4、重启mysql
$ service msyqld restart
### 配置 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 服务。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Siona_xin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值