当前位置:首页 > 标签
SpringBoot 14 Spring 2 SpringMVC 3 MyBatis 2 Linux 4 阿里云 13 宝塔 1 Docker 3 ElasticSearch 2 Redis 4 Shiro 0 Dubbo 0 Swagger 0 Thymeleaf 6 数据库 11 MySQL 11 外键 2 Gradle 1 Test 0 Tomcat 1 JavaWeb 7 Ajax 1 注解 3 css 2 报错 3 多数据源 1 Java基础 1 源码 2 Servlet 1 JSP 1 环境搭建 8 RabbitMQ 1 七牛云 1 Edit.md 1 图像识别 4 英语 2 Zookeeper 1宝塔面板安装MySQL数据库遇到的坑
- 2020-05-20
- 174
- 数据库设计
今天由于在写 MySQL 安全性方面的实验报告,关于角色管理这一个内容,低版本的 MySQL 数据库不支持,为了方便,直接就用宝塔面板安装了一个 MySQL8.0。
原本以为会很顺利,但是中间确遇到了点小问题,特此记录一下。
## 遇到问题
我安装成功之后,尝试使用 Navicat 连接数据库,但是却报了一个 1045 错误,如下图所示:

网上查了一下说是不允许远程主机访问,实际上也比较容易解决。
## 解决方案
稍微熟悉 MySQL 的同学应该知道,安装完数据库后,默认是有一个 root 用户的,root 用户有最高的权限,可以创建一些用户并赋予权限。
而记录用户的一些信息是放在 mysql数据库(具体的一个数据库)的 user 表里面的。
我们可以使用 Xshell 连接服务器,使用 root 用户登录 MySQL 服务,查看 mysql 数据库里面的 user 表的具体内容。
## 连接 MySQL进行操作
### 使用 root 用户进行登录
```
mysql -u root -p123456
```
- -u 后面输入用户名
- -p 后面输入密码(如何使输入明文密码不需要空格)
- 如果想输入密码是不显示密码,则在最后直接输入 -p,然后会提示输入密码 `mysql -u root -p`
### 查看 mysql 数据库(是以具体的数据库)中的 user 表中的字段
**为了方便理解,我先给出一张成功修改之后的截图**

下面进行具体的操作
```
use mysql; ## 切换到 mysql 数据库
select Host, User from user; ## 查询Host,User 字段
```

发现 root 用户对应的 Host 字段默认值是 localhost,表明只允许本地连接,我们需要对其进行修改
### 修改 Host 字段,然后刷新一下
```
update user set Host = '%' where User = 'root';
## 修改之后记得刷新一下
flush privileges;
```

这里的 % 是一个通配字符,表示允许任意的 IP 进行连接。
`flush privileges;` 用来刷新MySQL系统权限的相关表
## 再次连接,连接成功
完成上面的操作之后,再次使用 Navicat 进行连接,连接成功!
