# 起因
最近在做 JAVA 实训课程设计,写了一个树洞小程序,后端使用的是 Springboot+Mybatis,刚好有自己的服务器,于是就想把后端部署到服务器上。数据库使用的是 MySql,在部署中搜了很多资料,看了很多篇文章,跌跌撞撞花了不少力气才部署上去,于是就像写篇博客,一来自己加深印象方便以后配置,二来也希望可以帮助到大家。博主的服务器系统为 ubuntu 20.04 LTS。
# 1. 安装数据库
首先拥有一台云服务器。
1 | sudo apt-get update |
服务端只需要安装 server 就行了,不必安装 client
# 2. 服务器添加相应的安全组
进入云服务器界面,点击更多添加安全组,博主用的是阿里云的服务器。<br>
端口设置为 3306(MySql 服务默认的端口号),授权对象选择 0.0.0.0/0(表示任意 IP)。注意方向为 "入方向"
# 3. 开启 MySql 远程登录
打开 MySql 的配置文件
1 | sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf |
MySql 默认只允许本地登录,但是我们使用的是云服务器,在自己电脑上远程访问方便开发和管理,所以我们需要手动开启远程登录。
找到 bind-address=127.0.0.1 这一行,将其注释掉(博主已经修改过了)。修改后保存,并且重启 MySql 服务才能生效
1 | sudo systemctl restart mysql.service |
# 4. 创建远程访问用户
使用 root 用户登录数据库
1 | mysql -u root -p |
创建用户
1 | CREATE USER 'username'@'host' IDENTIFIED BY 'password'; |
username:用户名 <br>
host:指定该用户可以在哪台主机上登陆,如果是本地用户可以写 localhost,如果想让该用户可以从任意主机远程登录可以填 %<br>
password:登录密码,密码可以为空。为空时可以不用输入密码登陆。
# 5. 给远程访问用户授权
授权语句
1 | GRANT privileges ON databasename.tablename TO 'username'@'host'; |
privileges:用户的操作权限,如 SELECT,INSERT,UPDATE 等,如果要授予所的权限则使用 ALL<br>
databasename:数据库名 <br>
tablename:表名 <br>
如果要授予该用户对所有数据库和表的相应操作权限则可用 * 表示 <br>
刷新授权
1 | flush privileges |
这一步一定要做,不然无法成功!这句表示从 mysql 数据库的 grant 表中重新加载权限数据,因为 MySQL 把权限都放在了 cache 中,所以在做完更改后需要重新加载。<br>
更多关于 MySql 数据库的命令详见 Ubuntu 安装和使用 MySQL,非常好的一篇文章,简单易懂且全面。
# 6. 远程访问
博主开发时使用的 idea,因此使用 idea 中的 DB Browser。
Host:服务器 IP 地址
Port:MySql 服务端口号
Database:注意这里默认是 mysql,不要忘了修改为你想要访问的数据库
Authentication:选择 User/Password,如果没有设置密码就选择 User