
开启 MySQL 的远程连接权限
前置说明
系统:Ubuntu 2204
MySQL 版本:8.0
登录 MySQL 服务器:
1 | mysql -u root -p |
查看 root 用户的访问权限:
1 | SELECT user, host FROM mysql.user WHERE user = 'root'; |
如果查询结果如下,host 列中只有 localhost,说明 root 只能从本地访问,不能远程访问
1 | +------+-----------+ |
解决方法如下:
修改 MySQL 配置文件
打开 MySQL 配置文件
1 | sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
找到以下行
1 | bind-address = 127.0.0.1 |
修改为
1 | bind-address = 0.0.0.0 |
如果没有
bind-address
字段,则在[mysqld]
下自行添加
保存文件并重启 MySQL 服务
1 | sudo systemctl restart mysql |
授予权限
创建用户
1 | CREATE USER 'root'@'%' IDENTIFIED BY '{your_password}'; |
授予权限
1 | GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; |
刷新权限
1 | FLUSH PRIVILEGES; |
验证修改
1 | SELECT user, host FROM mysql.user WHERE user = 'root'; |
查询结果如下:
1 | mysql> SELECT user, host FROM mysql.user WHERE user = 'root'; |
其他可能
也有可能是防火墙直接阻止外部访问 MySQL 的端口,但是没遇到这个情况所以就不写了
本文采用CC BY-NC-SA 4.0协议,完整转载请注明来自V1hZ's Blog
评论 ()