最近公司项目需要用到linux+tomcat+mysql的环境,领导把搭建环境的任务交给了我(老实说没怎么用过linux,脑坑疼)。因为是对Linux不太熟,所以必不可少要百度,但是在网上找的帖子参差不齐,不是这少了步骤,就是哪的命令不对(一看就是粘贴复制的),浪费了我不少时间。写这个帖子的目的,一方面是为了记录一下方便今后使用,另一方面也希望帮助更多有相同需求的朋友少走弯路。废话不多说,下面开始这次的环境搭建。(第一次记笔记,可能有些地方写的不是太好,大家多担待哈)
参考博客
环境搭建
一、环境搭建准备
1.下载并安装VMware虚拟机(可根据使用习惯选择不同的虚拟机软件)
[下载地址]https://my.vmware.com/cn/web/vmware/downloads
这里下载Workstation Pro版本(官网下载是收费的,所以需要激活)
激活教程(这个破解教程也是csdn社区的大佬写的)
https://blog.csdn.net/newbie_907486852/article/details/79824042
2.下载Centos镜像
[下载地址]https://www.centos.org/download/
点击DVD ISO镜像,进行下载
[这里根据需求选择不同版本,我下载的是7.6.1810版本的镜像]
3.下载Jdk
[下载地址]https://www.oracle.com/technetwork/java/javase/archive-139210.html
[在这里选择所需要使用的版本,这里我选择SE8版本]
(注意:下载前需要登录帐号,没有帐号的小伙伴先注册然后在下载。)
选择"Accept License Agreement"(同意下载协议),然后就进行安装包下载。这里我选择的是"tar.gz"免安装版压缩包]
4.下载Tomcat
[下载地址]http://tomcat.apache.org/
[选择Tomcat的版本,这里我选择的是Tomcat8]
[选择”tar.gz“格式免安装版的包进行下载]
5.下载Mysql
[下载地址]https://dev.mysql.com/downloads/mysql/
[选择社区版"Community"-"MySQLCommunityServer "板块,然后向下翻页]
[这里可以选择历史版本进行下载,有需要的可以自行下载]
![有兴趣的小伙伴可以在这里选择其它版本进行下载,不需要请向下翻]有兴趣的小伙伴可以在这里选择其它版本进行下载,不需要请向下翻
[翻到这里选择Linux通用版(LinuxGeneric),下载tar.xz免安装压缩包]下载完成,搭建环境的安装包就都准备好了。下面开始环境搭建。
![选择Linux通用版(LinuxGeneric),下载tar.xz免安装压缩包]选择Linux通用版(LinuxGeneric),下载tar.xz免安装压缩包
二、新建Centos7虚拟机
1.新建虚拟机
[默认选择"典型",点击"下一步"]
![选择"典型"就好,点击"下一步"]选择"典型"就好,点击"下一步"
[选择稍后安装操作系统,进行下一步]
[选择操作系统"Linux",版本Centos64或者32都可以,这里我选择64位,进行下一步]
[设置虚拟机名称和存储位置。名称按自己喜好,但是存储位置建议选择其它盘符,不要用系统盘符,这里因为C盘容量够,我选择了默认路径]
[系统默认20G,可以根据用途调节容量大小,这里我选择40G,进行下一步]
[到一步点击完成,这样一个空的虚拟机就配置完成,接下来安装操作系统]
2.安装操作系统
[双击"CD/DVD"选项]
[点击浏览,找到刚刚下载的Centos镜像文件,并点击确认]
[开启虚拟机]
[选择"Install Centos7"]
[选择自己熟悉的语言,这里选择中文,点击"继续"]
[这里会自动创建分区,点击"开始安装"]
[到这里就开始安装操作系统了,在这段时间可以设置管理员密码。然后等待安装完成]
[重启系统完成安装]
[重启之后看到这个页面,系统就安装完成了]
3.登录管理员账号,配置静态IP
[使用 ip addr命令查看当前网卡信息,可以看到网卡名为"ens33"]
[使用vi命令修改/etc/sysconfig/network-scripts路径下的ifcfg-ens33配置文件,下面标红部分是我修改和添加的信息。按"i"键进入编辑模式,进行编辑]
TPROTO=static(启动静态地址协议)
ONBOOT=yes(激活网卡)
GATEWAY=192.168.159.2(网关)
IPADDR=192.168.159.120 (静态ip地址)
NETMASK=255.255.255.0(子网掩码)
DNS=192.168.199.1(DNS)
APRCHEK=no(关闭apr防火墙检测)
[编辑好之后,按下esc,退出编辑模式,按下"Shift+:“输入"wq”,按下回车保存]
使用"service network restart"命令重启网络服务,使用"ip addr"命令查看网卡信息,可以看到ip地址配置成功
在使用"ping"命令测试网路是否正常,测试的网址随意,这里使用的是百度网址
出现上面的信息说明网络没有问题,如果不能ping通,可能是刚刚设置的信息有误,仔细检查,改好后,重启网络服务重试
三、安装Jdk和Tomcat
1.使用SFTP工具上传文件到虚拟机(远程工具可以使用xshell、SecureFXPortable等,作者用的是SecureFXPortable)
这里我将三个包分别上传到了root目录下
使用"tar"命令将两个包分别解压倒/usr/local目录下
tar -zxvf apache-tomcat-8.5.34.tar.gz -C /usr/local
tar -zxvf apache-tomcat-8.5.34.tar.gz -C /usr/local
使用"cd"命令转到/usr/local目录,在使用"ls"查看
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
apache-tomcat-8.5.34 etc include lib libexec share
bin games jdk1.8.0_181 lib64 sbin src
现在有了解压文件,但是名称过长不好记,使用"mv"命令改个名字,在用"ls"查看
[root@localhost local]# mv apache-tomcat-8.5.34 tomcat8.5
[root@localhost local]# mv jdk1.8.0_181 jdk1.8
[root@localhost local]# ls
bin games jdk1.8 lib64 sbin src
etc include lib libexec share tomcat8.5
可以看到上面的包名修改成功,下面开始配置环境变量
使用"vi"命令修改etc目录下的profile配置文件
[root@localhost local]# vi /etc/profile
翻到末行,按下"i"进入编辑模式添加如下代码,"Esc"退出编辑,再使用"wq"保存。
export JAVA_HOME=/usr/local/jdk1.8
export JRE_HOME=/usr/local/jdk1.8/jre
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/li
b/tools.jar
export CATALINA_HOME=/usr/local/tomcat8.5
export TOMCAT_HOME=/usr/local/tomcat8.5
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_HOME/bin
使用"source"命令刷新profile配置文件
[root@localhost local]# source /etc/profile
输入"java -version"检查JDK是否配置成功,成功后会出现如下信息
[root@localhost local]# java -version
java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)
输入/usr/local/tomcat8.5/bin/startup.sh运行Tomcat,运行成功会出现如下信息
[root@localhost local]# /usr/local/tomcat8.5/bin/startup.sh
Using CATALINA_BASE: /usr/local/tomcat8.5
Using CATALINA_HOME: /usr/local/tomcat8.5
Using CATALINA_TMPDIR: /usr/local/tomcat8.5/temp
Using JRE_HOME: /usr/local/jdk1.8/jre
Using CLASSPATH: /usr/local/tomcat8.5/bin/bootstrap.jar:/usr/local/tomcat8.5/bin/tomcat-juli.jar
Tomcat started.
关闭防火墙,防止远程访问时被防火墙拦截
[root@localhost local]#systemctl stop firewalld
[root@localhost local]# systemctl start firewalld(启动防火墙)
[root@localhost local]#systemctl stop firewalld(停止防火墙)
[root@localhost local]#systemctl restart firewalld(重启防火墙)
[root@localhost local]# systemctl disable firewalld(禁用防火墙)
[root@localhost local]# systemctl enable firewalld(开机启动防火墙)
[root@localhost local]#systemctl status firewalld (查看防火墙状态)
使用浏览器访问tomcat,看到如下界面,防火墙关闭成功。
四.安装MySQL
1.使用"rpm -qa |grep mariadb-lib"centos7自带的mariadb数据库,如果有就需要卸载,不然会和MySQL冲突。出现下图结果就是有
[root@localhost ~]# rpm -qa |grep mariadb-lib
mariadb-libs-5.5.60-1.el7_5.x86_64
使用"rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps"进行卸载。然后再次查看,没有返回说明卸载成功
[root@localhost ~]# rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
[root@localhost ~]#rpm -qa |grep mariadb-lib
[root@localhost ~]#
- 使用"rpm -qa |grep libaio"检查是否安装了" libaio"包,如果没有无法运行MySQL数据库。下图有返回,说明有libaio包。
[root@localhost ~]# rpm -qa |grep libaio
libaio-0.3.109-13.el7.x86_64
3.移动到存放MySQL安装包的root目录,使用"xz"命令解压xz包,得到tar包,再使用"tar"命令解压到/usr/local目录,解压可能要一两分钟。
[root@localhost ~]# xz -d mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
[root@localhost ~]# ls
mysql-8.0.13-linux-glibc2.12-x86_64.tar
[root@localhost ~]# [root@localhost ~]# tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar -C /usr/local
4.解压完成后,移动到/usr/local目录,改目录名称
[root@localhost ~]# cd /usr/local
[root@localhost local]# mv mysql-8.0.13-linux-glibc2.12-x86_64 mysql8.0
[root@localhost local]# ls
bin games jdk1.8 lib64 mysql8.0 share tomcat8.5
etc include lib libexec sbin src
5.建立mysql用户和用户
[root@localhost local]# groupadd mysql
[root@localhost local]# useradd -g mysql mysql
6.创建mysql用户密码(密码最好不要小于8位或者太简单)
[root@localhost local]# passwd mysql
7.查看是否创建成功
[root@localhost local]# cat /etc/group |grep mysql
mysql:x:1000:
[root@localhost local]# cat /etc/passwd |grep mysql
mysql:x:1000:1000::/home/mysql:/bin/bash
8.设置目录权限
chown -R mysql.mysql /home/apps/mysql8.0
8.初始化数据库,移动到/usr/local/mysql8.0/bin/目录,初始化数据库(注意"root@localhost:"后面的值,那是数据库root账号的初始密码,第一次登录的时候使用。)
[root@localhost local]# cd /usr/local/mysql8.0/bin/
[root@localhost bin]# ./mysqld --initialize --user=mysql
2018-12-31T10:38:42.915568Z 0 [System] [MY-013169] [Server] /usr/local/mysql8.0/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 7101
2018-12-31T10:38:46.145473Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: a<.atFqd=4/k
2018-12-31T10:38:48.142408Z 0 [System] [MY-013170] [Server] /usr/local/mysql8.0/bin/mysqld (mysqld 8.0.13) initializing of server has completed
9.使用"vi"在/etc目录下创建my.cnf配置文件
[root@localhost local]# vi /etc/my.cnf
添加内容
[mysqld]
#mysql安装路径
basedir=/usr/local/mysql8.0
#数据库存放路径
datadir=/usr/local/mysql8.0/data
#mysql端口号
port=3306
#允许最大连接数
max_connections=200
#修改服务端默认字符集
character-set-server=utf8
#创建新表时,将使用默认存储引擎
default-storge-engine=INNODB
[mysql]
#修改客户端默认字符集
default_character-set=utf8
#设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
"wq"保存退出后,修改文件权限
[root@localhost ~]# chmod 777 /etc/my.cnf
9."vi"编辑/usr/local/mysql8.0/support-files/下的mysql.servcer,给在大概46行到47的找到"basedir"和"datadir"添加mysql的安装路径和数据库的存放路径
# If you change base dir, you must also change datadir. These may get
44 # overwritten by settings in the MySQL configuration files.
45
46 basedir=/usr/local/mysql8.0
47 datadir=/usr/local/ysql8.0/data
48
49 # Default value, in seconds, afterwhich the script should timeout waitin g
10.使用"cp"命令复制/usr/local/mysql8.0/support-files/目录下的mysql.servcer到/etc/init.d/mysql中
[root@localhost mysql8.0]# cp /usr/local/mysql8.0/support-files/mysql.server /etc/init.d/mysqld
11.使用"service mysqld start"启动mysql,如下以出现"SUCCESS"说明启动成功
[root@localhost ~]# service mysqld start
my_print_defaults: [Warning] World-writable config file '/etc/my.cnf' is ignored.
Starting MySQL.my_print_defaults: [Warning] World-writable config file '/etc/my.cnf' is ignored.
my_print_defaults: [Warning] World-writable config file '/etc/my.cnf' is ignored.
Logging to '/usr/local/mysql8.0/data/localhost.localdomain.err'.
.. SUCCESS!
- "service mysqld status"查看状态
[root@localhost ~]# service mysqld status
my_print_defaults: [Warning] World-writable config file '/etc/my.cnf' is ignored.
SUCCESS! MySQL running (6458)
13.“vi”/etc/profile,在"export PATH"尾部添加mysql环境变量,然后Esc退出wq保存source刷新
[root@localhost ~]# vi /etc/profile
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$CATALINA_HOME/bin:/usr/local/mys
ql8.0/bin
:wq
[root@localhost ~]# source /etc/profile
14."mysql -uroot -p"登录root,出现"Enter password:"输入前面保存的"a<.atFqd=4/k"初始密码(初始密码比较复杂,而且密码不可见,所以容易输错。看清楚,注意大小写)
[root@localhost ~]# mysql -uroot -p
mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.
Enter password:
修改root登录密码,然后"flush privileges"刷新
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.04 sec)
mysql>flush privileges;
15.设置允许远程登录
"use mysql"进入use库,select user,host from user;查询用户表中的用户和地址
mysql> use mysql;
Database changed
mysql> select user,host from user;
+------------------+-----------+
| user | host |
+------------------+-----------+
| mysql.infoschema | localhost |
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+------------------+-----------+
4 rows in set (0.00 sec)
使用下列命令,将root的host更换成’%’,即允许所有远程地址都可以访问
mysql> update user set host='%' where user='root';
设置允许root用户登录,并刷新修改
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
mysql> GRANT ALL ON *.* TO 'root'@'%';
flush privileges;
输入exit退出mysql登录
mysql> exit
Bye
[root@localhost ~]#
在/etc/my.cnf中[mysqld]下添加"skip-name-resolve"然后保存退出(注意:配置skip-name-resolve后不能再配置skip-grant-tables)
[mysqld]
skip-name-resolve
因为前面关闭了centos的防火墙,所以这里我就直接使用浏览器远程访问mysql,我用的firefox。页面出现内容说明远程连接设置成功。
到这里环境就全部搭建完成了。希望这篇文章对大家有帮助。