Tomcat
- 首先试试本地访问可不可以,命令是
curl localhost:8080
如果不可以的话那说明Tomcat的启动出现了问题,查看logs目录下面的日志文件,结果发现一直卡在
org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [/usr/local/apache-tomcat-9.0.21/webapps/docs]
这句话这里没有进行下去,百度之后找到了解决方案
就是找到jdk1.x.x_xx/jre/lib/security/Java.security
文件,在文件中找到securerandom.source
这个设置项,将其改为:
securerandom.source=file:/dev/./urandom
虽然不知道这是为什么,但修改之后重新运行以后,重新执行curl localhost:8080
就成功了!
- 然后是第二步,让外网可以访问
首先如果用的是CentOS的话系统有防火墙,需要设置8080端口开启,
查看已经开放的端口:
firewall-cmd --list-ports
开启端口:
firewall-cmd --zone=public --add-port=80/tcp --permanent
重启防火墙:
firewall-cmd --reload #重启firewall
firewall-cmd --state #查看默认防火墙状态(关闭后显示not running)
持此之外要给阿里云服务器添加安全组。
- 接着将要运行的war包放到Tomcat里的webapps目录里,最后在运行的时候服务器地址后面加上war包的名称就可以访问了
- 如果要更新war包的话,将webapps目录里对应文件夹删除,替换war包,重启Tomcat即可
MySQL
- 首先如果要外网访问的话防火墙要开启3306端口,安全组也要添加这一项。
然后mysql里默认只允许localhost和127.0.0.1进行访问。
先运行SQL语句select user, host from mysql.user
可看出外网确实不可以访问。
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '新密码' WITH GRANT OPTION;
这里的新密码可以和之前的root密码一致,也可以不一致,设置完成以后就可以外网访问了
- 其次要设置数据库的编码,不知道怎么回事CentOS里的MySQL默认的编码并不是
UTF-8
,而是什么latin1
,可以通过执行SQL语句show variables like "%character%”;
看出来
于是乎打开/etc/my.cnf
文件,
在 [mysqld] 标签下加上以下内容:
default-character-set = utf8
character_set_server = utf8
注意:如果此标签下已经存在default-character-set=GBK
类似的内容,只需修改即可。
在[mysql]
标签下加上一行
default-character-set = utf8
在[mysql.server]
标签下加上一行
default-character-set = utf8
在[mysqld_safe]
标签下加上一行
default-character-set = utf8
在[client]
标签下加上一行
default-character-set = utf8
接着重启MySQL服务
systemctl stop mariadb/mysqld
systemctl start mariadb/mysqld
然后再执行show variables like "%character%”;
便可以看出确实都变成UTF-8
编码了
Pasted Graphic.png