Ubuntu🐧搭建 [JavaWeb+MySQL] 项目环境
MySQL环境搭建
1. 安装MySQL
sudo apt-get install mysql-server
2. 配置MySQL
配置MySQL的目的,一是为了能够远程访问数据库,二是为了让服务器上的项目能成功连接数据库。
开放3306端口
查看3306端口是否对外开放
$ netstat -an | grep 3306
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN
从上面可以看出,mysql的3306端口只是监听本地连接127.0.0.1。我们做下修改,使其对外其他地址开放。
打开/etc/mysql/mysql.conf.d/mysqld.cnf(或者是/etc/mysql/my.cnf)文件
$ vim /etc/mysql/mysql.conf.d/mysqld.cnf
找到bind-address = 127.0.0.1这一行,注释掉。
授权用户远程访问
为了让访问mysql的客户端的用户有访问权限,我们可以通过如下方式为用户进行授权: 首先进入mysql(如果用root用户登录,此时直接输入mysql是可以直接不用密码就能进入的,后面会讲如何设置,使root用户也需要输入密码才能访问mysql,至于原因,也会在后面讲)
$ mysql
重启mysql服务,使配置生效
$ /etc/init.d/mysql restart
配置root权限
还是进入mysql命令行 配置权限:
mysql > use mysql;
mysql > grant all privileges on *.* to "root"@"%" identified by "密码";
mysql > grant all privileges on *.* to "root"@"localhost" identified by "密码";
mysql > flush privileges;
修改root用户的plugin属性⭐
(如果不设置这一步,虽然能远程访问数据库,但是本地项目启动不起来,报create connection error错误)
mysql > update mysql.user set authentication_string=PASSWORD('密码'), plugin='mysql_native_password' where user='root';
mysql > flush privileges;
这是配置后的用户:
mysql > select user, host, plugin from user;
项目端口开放
控制台开放项目使用的端口
进入腾讯云/阿里云控制台,管理安全组 添加一个规则:
0.0.0.0/0表示任意IP可访问 TCP:60004表示开放的端口为TCP:60004 开放60004端口是由于我项目启动的端口为60004 在项目配置文件中设置(SpringBoot项目): application-release.properties:
server.port=60004
server.servlet.context-path=/carManager
#数据库配置 关于无法解析驱动问题的解决方案:设置mysql的准确依赖版本
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/carmanager?useUnicode=true&characterEncoding=UTF-8&useSSL=false
spring.datasource.username=root
spring.datasource.password=yan5675609123
#连接池
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
项目打包
idea中使用maven打包项目
打包的JAR包放在项目根目录下的target文件夹下
carmanager-0.0.1-SNAPSHOT.jar
项目部署
在服务器根目录新建一个目录
$ mkdir /carmanager
设置该目录的访问权限,使FTP上传文件的时候有权限访问
$ chmod 0757 /carmanager
通过FTP上传JAR包到服务器上
运行项目,配置环境更改为release版本下的环境:
nohup java -jar carmanager-0.0.1-SNAPSHOT.jar --spring.profiles.active=release &
重新部署的流程
更新项目后要重新部署新的版本,流程如下:
-
ps -aux | grep carmanager 查看进程PID
-
kill -9 PID 结束旧进程
-
nohup java -jar carmanager-0.0.1-SNAPSHOT.jar —spring.profiles.active=release & 以release版本重新部署