CentOS7上安装与配置Tomcat8与MySQL5.7
一、安装tomcat
Tomcat 的安装依赖 JDK,在安装 Tomcat 之前需要先安装 Java JDK。输入命令 java -version,如果显示 JDK 版本,证明已经安装了 JDK。
JDK安装好后,接下来下载并解压tomcat安装包。
配置端口号,进入 tomcat 的 conf 目录下,修改 server.xml 文件,可以修改端口,默认 8080。
启动 tomcat,进入 tomcat 的 bin 目录下:
如果访问 http://ip:8080/ 失败,查看防火墙开放端口:
firewall-cmd --zone=public --list-ports
如没有8080,添加8080:
firewall-cmd --zone=public --add-port=8080/tcp --permanent firewall-cmd --reload
至此,http://ip:8080/ 应该可以访问了。见下图:
二、安装MySQL
1.在安装之前,为防止重装,所以先卸载MySQL。
yum方式:
查看yum方式是否安装过MySQL。
如或显示了列表,说明系统中有MySQL。
yum卸载。根据列表上的名字进行卸载:
yum remove mysql-community-client.x86_64 mysql-community-common.x86_64 mysql-community-libs.x86_64 mysql-community-server.x86_64 mysql57-community-release.noarch rm -rf /var/lib/mysql rm /etc/my.cnf
rpm查看安装。
rpm 卸载:
rpm -e mysql-community-common-5.7.23-1.el7.x86_64 rpm -e mysql-community-server-5.7.23-1.el7.x86_64 rpm -e mysql-community-libs-5.7.23-1.el7.x86_64 rpm -e mysql57-community-release-el7-10.noarch rpm -e mysql-community-client-5.7.23-1.el7.x86_64 cd /var/lib/ rm -rf mysql/
清除余项:
whereis mysql mysql: /usr/bin/mysql /usr/lib64/mysql /usr/local/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz #删除上面的文件夹 rm -rf /usr/bin/mysql
删除配置:
rm –rf /usr/my.cnf rm -rf /root/.mysql_sercret
剩余配置检查:
chkconfig --list | grep -i mysql chkconfig --del mysqld
2.安装MySQL。
yum安装,先要搞到源。
wget http://repo.mysql.com/mysql57-community-release-el7-9.noarch.rpm sudo rpm -ivh mysql57-community-release-el7-9.noarch.rpm
更新yum软件包:
yum check-update
更新系统:
yum update
安装mysql:
yum install mysql mysql-server
接下来是漫长的等待。如果中途关机,或者下载挂了,请执行卸载步骤后,再来一次。
完成后,记住要给root上密码。如果使用中发现:
这是因为,为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。
一般可以通过log_error设置。可以通过# grep "password" /var/log/mysqld.log 命令获取MySQL的临时密码。
用该密码登录到服务端后,必须马上修改密码,不然会报如下错误:
如果只是修改为一个简单的密码,会报以下错误:
这个其实与validate_password_policy的值有关。
validate_password_policy有以下取值:
Policy | Tests Performed |
---|---|
0 or LOW |
Length |
1 or MEDIUM |
Length; numeric, lowercase/uppercase, and special characters |
2 or STRONG |
Length; numeric, lowercase/uppercase, and special characters; dictionary file |
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如说,我只想设置root的密码为123456。
必须修改两个全局参数:
首先,修改validate_password_policy参数的值:
这样,判断密码的标准就基于密码的长度了。这个由validate_password_length参数来决定。
其中,validate_password_number_count指定了密码中数据的长度,validate_password_special_char_count指定了密码中特殊字符的长度,validate_password_mixed_case_count指定了密码中大小字母的长度。
这些参数,默认值均为1,所以validate_password_length最小值为4,如果你显性指定validate_password_length的值小于4,尽管不会报错,但validate_password_length的值将设为4。
如果修改了validate_password_number_count,validate_password_special_char_count,validate_password_mixed_case_count中任何一个值,则validate_password_length将进行动态修改。
当然,前提是validate_password插件必须已经安装,MySQL5.7是默认安装的。
那么如何验证validate_password插件是否安装呢?可通过查看以下参数,如果没有安装,则输出将为空。
给root更改密码:
systemctl start mysqld mysql -u root
mysql> update mysql.user set authentication_string=password('new_password') where user='root' and Host ='localhost';
mysql> flush privileges;
mysql> quit;
3.远程连接MySQL
另外,我们可以将在VMware的centOS中安装的MySQL配置为支持远程连接。
在CentOS7中执行:
service iptables start/stop
会报错:
Failed to start iptables.service: Unit iptables.service failed to load: No such file or directory.
可以采取传统的防火墙管理方式。执行以下命令:
systemctl stop firewalld systemctl mask firewalld
安装iptables-services:
yum install iptables-services
设置开机启动:
systemctl enable iptables
systemctl stop iptables
systemctl start iptables
systemctl restart iptables
systemctl reload iptables
保存设置:
service iptables save
这时,在本地电脑的navicat上的连接远程的MySQL,显示连接成功: