配置问题汇总
- 安装JDK
- 安装tomcat
- 安装mysql
- ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
- 会报错显示:`ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY '123456' WITH GRANT OPTION' at line 1
- 项目部署
在项目部署之前,首先需要准备好几个东西,即:在服务器中安装jdk、tomcat、mysql 。
而在最后部署项目的时候需要用到:xshell(Xshell可以在Windows界面下用来访问远端不同系统下的服务器,从而比较好的达到远程控制终端的目的。除此之外,其还有丰富的外观配色方案以及样式选择。)以及:xftp(Xftp是一个功能强大的SFTP、FTP 文件传输软件。使用了 Xftp 以后,MS Windows 用户能安全地在 UNIX/Linux 和 Windows PC 之间传输文件。Xftp 能同时适应初级用户和高级用户的需要。它采用了标准的 Windows 风格的向导,它简单的界面能与其他 Windows 应用程序紧密地协同工作,此外它还为高级用户提供了众多强劲的功能特性。
下载地址:https://www.netsarang.com/zh/xftp/
安装JDK
在下载安装好xshell以后打开,连接服务器:
①首先查看系统中有没有已经安装了JDK,有的话就卸载,没有的话就跳过。
输入
java -version
rpm -qa | grep java
rpm -e --nodeps (需要卸载的相应的内容)
②入官网选择合适的jdk版本下载
1)选定好自己需要把jdk放在哪里,比如一般都是放在usr/local/下的,然后在这个目录下创建一个jdk文件夹: mkdir jdk
2)然后将刚下载好的jdk,上传到jdk目录下
3)然后解压
4)解压成功以后可以输入:ls 来查看文件名
5)配置环境变量:
vim /etc/profile
需要添加的内容:
其中中括号中的内容,输入的是自己安装对应的目录,并且中括号是没有的
export JAVA_HOME=【/usr/local/jdk/jdk1.8.0_241】
export JRE_HOME=【/usr/local/jdk/jdk1.8.0_241/jre】
export CLASSPATH=.: ${JAVA_HOME}/lib: ${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin: $PATH
6)重新编译变量环境source /etc/profile
7)再次输入: java -version 查看是否有jdk的信息
安装tomcat
1)上官网下载:https://tomcat.apache.org/
下载好以后
1)创建存放tomcat的目录(步骤和jdk的差不多)
2)将下载好的文件上传到目录下
3)解压
tar -zxvf apache-tomcat-9.0.36.tar.gz
解压成功以后输入ls可以查看到文件名
4)测试tomcat是否正常工作
cd bin
./startup.sh
然后输入服务器ip,正常工作就会显示tomcat猫的页面
然后就成功了!
然而有的时候,前面的步骤没有错,但输入地址,却看不到上述的页面的时候,有两种方法:
第一种,关闭防火墙:
systemctl stop firewalld
第二种,在防火墙中,将8080端口开放:(更推荐使用第二种方法)
firewall-cmd --zone=public --add-port=8080/tcp --permanent
重新载入
firewall-cmd --reload
然后再试一次就可以了。
当然如果上面的步骤都试了,端口打开了,还是不行的话,就可能是阿里云的端口开放安全组没有配置了。这个时候,(1)打开安全组,然后点击配置规则。
(2)点击手动添加,然后配置即可
(3) ①的位置,输入需要的端口号,比如现在是要8080,就输入:8080/8080
②授权对象,即允许访问的IP地址:可可以填写0.0.0.0/0表示允许或拒绝所有IP地址的访问
③优先级:同类型规则间依赖优先级决定最终执行的规则。尤其是当ECS实例加入了多个安全组时,多个安全组会从高到低依次匹配规则。优先级数值越小,代表优先级越高,取值范围1~100。如果两条安全组规则的协议类型、端口范围、授权类型、授权对象都相同,最终生效的安全组规则如下:
优先级相同:拒绝策略的规则优先生效,允许策略的规则不生效。
优先级不同:优先级高的规则生效。
最后再重启tomcat试一次,不出意外的话就可以访问到页面了
安装mysql
1)在MySQL的官网上下载对应的rpm包
2)在/usr/local下创建一个放mysql的目录,然后通过xftp将rpm包上传到该目录下
3)安装rpm:
yum -y install mysql80-community-release-el7-3.noarch.rpm
4)安装mysql
yum install -y install mysql-community-server
在最后看到一个完成(completed)的词的时候,代表安装成功了
5)启动mysql并查看初始密码
systemctl start mysqld.service
systemctl status mysqld.service
查看初始密码,这个密码比较复杂
grep “password” /var/log/mysqld.log
如果发现使用这种方法查不到密码,可以进行配置
#vim /etc/my.cnf
在文档内搜索mysqld定位到[mysqld]文本段:
在[mysqld]后面任意一行添加“skip-grant-tables”用来跳过密码验证的过程
但也可能会出现这个问题,在登入进去,重新密码修改的时候会出现
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option
先执行
flush privileges;
然后再修改密码就可以了
6)登录mysql
mysql -uroot -p
7)修改密码:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
这个时候就可以修改密码啦,但这里,如果新设置的密码太过于简单的话会有报错,显示修改不了密码。
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
①输入,
SHOW VARIABLES LIKE ‘validate_password%’;
但也有可能会操作不了,这个时候就先更改将初始密码更改了,把密码修改的复杂一些。在后面的操作都执行完毕以后,再对密码更改为简单的即可。当然,如果密码不需要设置简单的,可以跳过①②步骤。
②修改变量:需要注意的是,mysql8和mysql5.7的版本,两者的输入方式是不一样的,不然的话就会报错,我安装的是MySQL8 的,输入的方式就如下所示:
set global validate_password.policy=0;
set global validate_password.length=6;
这个时候再进行修改密码就可以成功了。
8)mysql远程连接
GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
但这里会遇到一个问题,就是在输入
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your password' WITH GRANT OPTION;
会报错显示:`ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘IDENTIFIED BY ‘123456’ WITH GRANT OPTION’ at line 1
`
经查找,发现。在版本8以后,这是已经将创建账户和赋予权限的方式分开了。
mysql> create user root@'%' identified by 'your password';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on *.* to root@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
但会发现在输入了下列以后报错ERROR 1396 (HY000): Operation CREATE USER failed for 'root'@'%'
`create user root@'%' identified by 'your password';`
这时候只需要再删除一次即可
drop user 'root'@'%';
▲ 最后一定需要对mysql进行重启,不然在进行navicat远程连接的时候,可能一直报错显示2003;哪怕开了端口号的时候,也一样会报错2003;这个弄了我好久才发现原来是因为,没有把数据库进行重启所造成的问题,然后才把问题给解决了。
9)打开navicat进行连接
①中的连接名,自己起
②主机,输入服务器对应的ip
③用户名,密码
如果这个时候连接的时候,报错。无法连接的时候,原因是因为没有将端口打开。
firewall-cmd --zone=public --add-port=3306/tcp --permanent
重新载入
firewall-cmd --reload
除此之外,安全组的配置中也是一样的,端口号3306。操作的步骤,与tomcat的时候一样进行配置。最后再进行连接,就可以与服务器中的mysql进行连接了。
项目部署
①将web项目打包成.war。
②将war通过xftp上传在tomcat下的webapps下面,然后启动tomcat。就部署成功了。而在上传的时候,最好将tomcat关闭了以后再进行部署。然后启动tomcat,war包就会被解压,在webapps下可以看到相应的项目文件夹了。这时候,在游览器输入地址,就可以访问到项目了。
第一次尝试将项目部署到服务器上,过程中遇到了许多问题,现在将自己部署过程,以及遇到的问题和解决的方法都记录了下来,如果有哪里写的不对的地方,希望大家可以指出来。谢谢大家!!!!!