web项目云服务器选配 及 安装过程相关问题记录


前言

云服务器部署web项目时,遇到的相关问题记录一下;

小白若是不知道个人博客选择啥服务器的话,这里可以看下:

       之前用linux的宝塔面板,基本上没出现啥问题,但有个域名是在花生壳买的,当时准备使用本地物理机作为服务器,先使用本机笔记本玩玩,后面看双十一十二也没便宜几百块,就还是在tx云买了个三年的2核4G8M轻量应用服务器,我买的时候是222三年,性能完全过剩(就挂了个dnf(毕竟是十几年的老玩家),游戏里卡的那是。。。。。动不了。。。。。不过也是挂了tomcat运行),刚建站,其实1核2G也够。轻量应用服务器就不需要自己倒腾,很多软件都可以预装,我换成windows,预装了mysql8.0,然后就出现了下面mysql的相关问题。

        不过这里也遇到个坑,国内服务器使用域名访问(ip访问不用)需要备案,个人是无法建论坛等涉及到团体的网站的(花生壳买的域名不需要备案,但是会限制网速啥的---这也是我为啥从linux转为windows的原因,花生壳没有linux版),还有就是如果个人想建这类网站,建议选用国外或者香港服务器;建多个网站备案,需要第一个已备案网站能正常访问,且网站下方需要注明备案号链接等等不扯了,说的有点啰嗦了。。。

       作为小白的我,苦恼于寻找各种文章中,我就将我遇到的这些问题记录在一篇文章中,帮助一下像我一样的小白,更快速的解决问题。


目录

一、服务器相关问题

1、服务器无法ping:

2、将Tomcat8080端口改为80,使用域名直接访问

①将8080改为80;

②使用端口直接访问项目,不需要输入项目名:

③使用域名访问项目:

3、启动Tomcat,端口80被占用

①检测80端口被哪个程序占用:

②打开任务管理器,点开详细,找到是httpd.exe程序占用80端口:

③修改占用80端口程序的端口,或者停止相应程序;

二、MySQL相关问题:

1、MySQL登录语句:【已解决】

2、MySql登录进去后,提示:

You must reset your password using ALTER USER statement before executing this statement.【已解决】

3、远程无法访问MySQL【已解决】

4、MySQL的user表host设置错误,本地都无法登陆【已解决】

5、解决:"Host '*.*.*.*' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

6、解决:create connection error, url: ****,errorCode 0, state 08001


一、服务器相关问题

1、服务器无法ping:

修改防火墙设置:

服务器管理器 ---> 工具 ---> 高级安全Windows Defender防火墙 ---> 入站规则 ---> 文件和打印机共享(回显请求 - ICMPv4 - In),启用规则。

2、将Tomcat8080端口改为80,使用域名直接访问

①将8080改为80;

找到tomcat/conf/service.xml文件,找到没有被注释的

<Connector port="8080" protocol="HTTP/1.1" URIEncoding="UTF-8"
               connectionTimeout="20000"
               redirectPort="8443" />

port="8080" 改为 port="80" 即可;

②使用端口直接访问项目,不需要输入项目名:

找到<Engine 下的<Host>,在<Host>里面加上加粗部分(项目:testProject在webapp下面):

<Host name="localhost"  appBase="webapps" unpackWARs="true" autoDeploy="true">

        <Context path="" docBase="testProject" reloadable="true"/>

        <Valve .........

</Host>

③使用域名访问项目:

根据第②项,找到<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

改为:

<Host name="abc123.com"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

3、启动Tomcat,端口80被占用

①检测80端口被哪个程序占用:

cmd窗口执行:netstat -aon | findstr "80"

可看到80端口被pid为“2176”的程序占用:

②打开任务管理器,点开详细,找到是httpd.exe程序占用80端口:

 作为小白的我不知道这个程序是哪个的,百度找了下,是Apache程序,突然想起服务器预装的Apache了,接下来,找到Apache目录(预装的是C盘根目录下httpd-2.4.43);

③修改占用80端口程序的端口,或者停止相应程序;

这里打开:Apache/conf/httpd.conf

找到80,修改为88或者其他:

 

保存后,重启Apache服务:

 

然后,关闭先前的Tomcat,重新启动,双击Tomcat/bin/startup.bat。

二、MySQL相关问题:

1、MySQL登录语句:【已解决】

mysql -h localhost -P 3306 -u root -proot;

2、MySql登录进去后,提示:

You must reset your password using ALTER USER statement before executing this statement.【已解决】

解决:使用命令:alter user user() identified by "新密码";

3、远程无法访问MySQL【已解决】

        (mysql>:是指登录成功后在mysql里执行的语句)

        1、连接数据库: mysql -u root -p

   2、进入mysql数据库:mysql>use mysql;

   3、修改user表中的Host:mysql>update user set Host='%' where User='root';

   4、刷新:mysql>flush privileges;

4、MySQL的user表host设置错误,本地都无法登陆【已解决】

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

使用cmd命令:

①关闭mysql服务(需要管理员身份运行):

        net stop mysql

②进入mysql的bin目录下,mysql8.0无法直接使用mysqld --skip-grant-tables来跳过密码登录,

mysql8.0可使用命令:

        mysqld --console --skip-grant-tables --shared-memory

不关闭上面cmd窗口,重新打开一个cmd(重要),执行:mysql -uroot mysql

④登陆成功,依次输入:

mysql>use mysql;

mysql>update user set host = '%' where user = 'root';

mysql>flush privileges;

接下来就可以重新登录了。

之前以为设置多个ip,可以直接用逗号,然后设置完,一退出,直接无法登陆了(自己作,哭笑不得),搞了好几个小时才弄好。

 

还是直接用“%”这个吧,先不折腾了。

 

退出,启动mysql服务,执行:

net start mysql

接下来,所有ip都能通过root用户和密码访问服务器的mysql了。

还是创建一个用户吧:

mysql> create user '用户名'@'%' identified by '密码';

mysql> grant all privileges on 数据库名.* to '用户名'@'%' identified by '密码';

5、解决:"Host '*.*.*.*' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"

连接错误次数过多,防火墙认为是外部攻击,所以需要刷新一下host,使用root登录mysql,执行命令:

mysql>flush hosts;

6、解决:create connection error, url: ****,errorCode 0, state 08001

①mysql使用的是8.0版本,所以需要将maven项目的包版本升级,我之前是5.1.29,现改成8.0.12,idea里reload一下。
 

②驱动连接和url地址都是需要修改的,修改为下面的配置:

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://ip地址/数据库?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.12</version>
</dependency>

往后遇到这个相关的问题,仍然会继续记录。

项目使用域名访问正常,可以睡觉了(又是熬夜的一天)。。。。。。


7.解决:使用navicat导出远程数据库sql文件出现中文乱码【已解决】

找到mysql安装目录,找到my.ini文件,增加编码设置,保存后重启MySQL服务

[client]
loose-default-character-set = utf8
 
[mysql]
default-character-set=utf8 

[mysqld]
character-set-server=utf8

数据库->右键->数据库属性->字符集:utf8 -- UTF-8 Unicode,排序规则:utf8_general_ci

设置完成后,需要关闭连接重连。

Tip:使用navicat运行sql文件,或者使用命令行导入sql文件,都需要设置编码UTF-8。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一茗道人nview

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值