跳转到内容
唯一赫兹
返回

开启 MySQL 的远程连接权限

前置说明

系统:Ubuntu 2204

MySQL 版本:8.0


登录 MySQL 服务器:

mysql -u root -p

查看 root 用户的访问权限:

SELECT user, host FROM mysql.user WHERE user = 'root';

如果查询结果如下,host 列中只有 localhost,说明 root 只能从本地访问,不能远程访问

+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+

解决方法如下:

修改 MySQL 配置文件

打开 MySQL 配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

找到以下行

bind-address = 127.0.0.1
# 这说明MySQL只允许内部访问

修改为

bind-address = 0.0.0.0

如果没有 bind-address 字段,则在 [mysqld] 下自行添加

保存文件并重启 MySQL 服务

sudo systemctl restart mysql

授予权限

创建用户

CREATE USER 'root'@'%' IDENTIFIED BY '{your_password}';

授予权限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

刷新权限

FLUSH PRIVILEGES;

验证修改

SELECT user, host FROM mysql.user WHERE user = 'root';

查询结果如下:

mysql> SELECT user, host FROM mysql.user WHERE user = 'root';
+------+-----------+
| user | host      |
+------+-----------+
| root | %         |
| root | localhost |
+------+-----------+
2 rows in set (0.00 sec)

其他可能

也有可能是防火墙直接阻止外部访问 MySQL 的端口,但是没遇到这个情况所以就不写了



上一篇
使用 fonttools-pyftsubset 对 ttf 格式字体进行精简并压缩为 woff2 格式
下一篇
大学物理(二)