1. 程式人生 > 程式設計 >Linux系統搭建Java環境【JDK、Tomcat、MySQL】一篇就夠

Linux系統搭建Java環境【JDK、Tomcat、MySQL】一篇就夠

  前言:所有專案在完成開發後都會部署上線的,一般都是用Linux系統作為伺服器的,很少使用Windows Server(大多數專案的開發都是在Windows桌面系統完成的),一般有專門負責上線的人員。作為一個開發人員當然也能玩轉Linux,畢竟Linux是很多IT人員的喜好。   下面就使用純淨的Linux系統完成Java Web專案的部署。

  1. 安裝一個VMware workstation
  2. 在虛擬機器器上面安裝CentOS系統 (這裡使用的CentOS6.7 64位)
  3. 安裝Java開發環境JDK 1.8
  4. Tomcat8.5 其他伺服器也可以
  5. 資料庫安裝MySQL5.7 (Oracle、MS Server也可以)
    在這裡插入圖片描述

一、搭建Linux環境

  1.下載並安裝一個VMware workstation,這個是虛擬機器器的平臺(自行度娘下載~),虛擬機器器是在後面要在裡面搭建Linux系統。

  2.下載一個centos安裝包,linux版本有多種,比如說redhat、ubuntu、deepin、BT3,個人比較習慣使用centos,這裡下載一個 CentOS-6.4-i386-bin-DVD1.iso,6.4版本的。

  3.新建一個虛擬機器器,並把這個安裝包匯入進去,記住期間步驟有一步是需要建一個使用者和設定密碼,這裡的使用者是linux環境的普通賬戶,但是密碼是根賬戶root和這個普通使用者共用的密碼(這節的教程也在我的部落格上一節有詳細的步驟)

  4.安裝完成後,是圖形化介面,一般我們要用到的是命令列介面,所以這裡可以用快捷鍵 CTRL+ALT+F2,就可以切換到命令介面了。(命令列介面有幾種方式可以進入,這邊gqzdev推薦的是==Xshell5== 比較方便使用。需要的可以留言!)

XShell5 Xftp5工具(其他工具可以!)

在這裡插入圖片描述

XShell 5

  5.用命令ifconfig檢視IP 地址,然後可以考慮用Xshell來連線虛擬機器器,這樣操作命令會比較方便,不用頻繁的切換出來或者切換出去。

  上面的安裝及配置有問題的可以自行百度,網上資源很多。主要是搭建好Linux系統環境.....

二、JDK安裝

  1. 首先下載一個JDK版本,我這裡下載的是==jdk-8u221-linux-x64.gz== 這個版本。(JDK1.8目前用得比較多!) 也可以自行到JDK官網下載

    www.oracle.com/technetwork…

  2. 用xftp上傳到linux環境中去。上傳的路徑為: /usr/java

    在這裡插入圖片描述
    將剛才下載好的 壓縮包解壓,得到一個jdk1.8.0_221的資料夾。使用tar -xzvf命令解壓 然後用Xftp上傳至linux環境中去。有兩種方式 第一種,通過功能欄紅框內的“向右傳輸” 傳過去 第二種,直接拖動資料夾,拖過去。 非常重要的一點,linux環境中的路徑 是 /usr/java.....
    在這裡插入圖片描述
    JDK傳過去之後,現在就開始著手配置JDK環境了

  3. 配置JDK環境,需要給予這個資料夾最高的許可權,為了後續的方便,這邊直接賦予最高許可權 首先,通過XFTP開啟Xshell(開啟方式上一節有講到) 1)切換到"/“目錄下 cd ../.. 2)切換到local路徑下 cd /usr/java 3)賦予JDK檔案最高許可權 chmod 777 -R jdk1.8.0_221

  4. 配置JDK環境變數: 1)切換到"/“目錄下 cd ../.. 2)切換到etc路徑下 cd etc 3)編輯profile檔案 vim profile 4)按下鍵盤的 insert 鍵,進入編輯模式 5)配置JDK的環境變數,在profile中輸入如下內容(空白位置填入即可,新增在最後):建議配置變數參考下面的配置方式 export JAVA_HOME=/usr/java/jdk1.8.0_221 【特別說明:這個就是你的jdk的安裝路徑!!!不要弄錯了!要以你自己的路徑為準!】 6) 按住鍵盤的ESC鍵,然後輸入 :wq,就儲存了你剛剛設定的環境變數 7)讓你剛剛設定的環境變數生效 source profile 8)如何檢視你的JDK是否配置完成呢?輸入命令 java -version,看到下面的對應安裝JDK版本的截圖,就說明你配置成功了!

在etc下面的profile裡面最後面配置export.....

export JAVA_HOME=/usr/java/jdk1.8.0_221
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
複製程式碼

在這裡插入圖片描述
在這裡插入圖片描述
通過java -version檢查是否安裝成功! 到此,JDK的配置就算完成了
在這裡插入圖片描述

三、伺服器安裝

Tomcat8.5下載 tomcat.apache.org/download-80…

在這裡插入圖片描述

下面來介紹下Tomcat的配置

  1. 首先下載 一個tomcat版本,我這裡用的是apache-tomcat-6.0.37版本apache-tomcat-6.0.37.tar.gz是對應的壓縮包。

  2. 可以用XFTP 直接把已經解壓的apache-tomcat-6.0.37上傳到 /usr/local路徑,上傳完畢,然後這裡就需要對環境變數進行配置,然後後面的tomcat才會順利啟動

  3. 配置tomcat環境變數: 1)切換到"/“目錄下 cd ../.. 2)換到etc路徑下 cd etc 3)編輯profile檔案 vi profile 4)按下鍵盤的 i 鍵,進入編輯模式 5)配置tomcat的環境變數,在profile中輸入如下內容(配置JDK環境變數後面新增多這行即可):建議配置變數參考下面紅色字型的配置方式 export CATALINA_HOME=/usr/local/apache-tomcat-6.0.37 【特別注意:這裡就是就是配置你的tomcat的安裝路徑!不要弄錯了!】,如下圖所示: 7)編輯完畢後,按住鍵盤的ESC鍵,然後輸入 :wq,就儲存了你剛剛設定的tomcat環境變數 8)讓你剛剛設定的環境變數生效 source profile

注意:上面的JDK配置及tomcat路徑的配置可能存在點問題 ,建議啟用下面的配置方式

配置JDK環境變數及配置tomcat路徑: 1)首先回到home路徑,即頂級目錄,命令: cd ~ 2)然後開啟並編輯環境變數的檔案,輸入命令: vi .bashrc 3)進入環境變數編輯環境,加入如下環境變數:

export JAVA_HOME=/usr/local/jdk1.6.0_45
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOMR/bin 
export CATALINA_HOME=/usr/local/apache-tomcat-6.0.37
複製程式碼

4)編輯完畢,就儲存內容,命令: 先按ESC,然後輸入 ”:wq“就可以儲存了。 5)配置完畢後要讓配置生效,用命令:source ~/.bashrc   

4.可以啟動一下tomcat,看是否配置成功了:

1)切換到"/“目錄下 cd ../.. 2 ) 切換到啟動命令所在的bin路徑:cd /usr/local/apache-tomcat-6.0.37/bin 3 ) 輸入tomcat 啟動命令 ./startup.sh,如果遇到下面的提示,就說明你對bin檔案裡面的命令操作許可權不夠,就需要賦予許可權: 4 ) 返回到bin的上級目錄 cd .. 5 ) 賦予 bin檔案的最高許可權 chmod 777 -R bin 6 ) 切換到bin路徑下 cd bin 7 ) 然後再次執行tomcat啟動命令: ./startup.sh,出現如下截圖,則表明啟動成功。 8 ) 一般預設的埠則是8080,所以直接在你的PC端電腦的瀏覽器輸入 你的ip地址加上埠號,即可以訪問到tomcat的首頁了。 http://【你的linux伺服器IP地址】:8080 PS:ip地址 是你Linux伺服器的ip地址,如何獲取?--->在Linux中輸入ifconfig 就可以獲取到了! 10) 但是任何配置都不會這麼輕鬆就配置成功的,會出現防火牆關閉或者埠被佔用的問題,這裡我們可以切換到 tomcat下的bin 目錄,執行下面這個命令,檢視tomcat日誌: ./catalina.sh run,一般日誌格式如下: 注:如果訪問不了,可以嘗試關閉防火牆,在Linux下輸入命令: service iptables stop,然後再訪問就可以了! 11)在瀏覽器輸入IP地址加埠號,如果看到tomcat 的首頁,則表明成功了,如下所示:

在這裡插入圖片描述

四、資料庫

安裝開源資料庫MySQL

  1. 選擇yum安裝
  2. 通過tar.gz壓縮包進行安裝

4.1 yum安裝

  校驗當系統是否安裝mysql:

rpm -qa | grep mysql
複製程式碼

  解除安裝mysql:

// 強力刪除模式,如果使用上面命令刪除時,提示有依賴的其它檔案,則用該命令可以對其進行強力刪除
rpm -e --nodeps
複製程式碼

  三行命令:

yum install mysql
yum install mysql-server
yum install mysql-devel
複製程式碼

  也可以一行:

yum install -y mysql mysql-server mysql-devel
複製程式碼

在這裡插入圖片描述

4.2 通過tar.gz壓縮包進行安裝

作業系統:Centos6.4 64位 工具:Xftp5、Xshell5 安裝軟體:mysql5.7 說明:使用官方編譯好的二進位制檔案進行安裝

在這裡插入圖片描述

  1. 移動安裝檔案到指定目錄

在這裡插入圖片描述

  1. 檢查是否安裝Mysql
rpm -qa | grep mysql
複製程式碼
  1. 解壓
tar -xvzf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
複製程式碼
#重新命名mysql57
[root@VM_0_17_centos mysql]# mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql57
複製程式碼

在這裡插入圖片描述

進行到這裡說明:  將mysql的壓縮包解壓到/usr/mysql/目錄下面,並且rm重新命名為mysql57   此時資料庫的檔案目錄為 ==/usr/mysql/mysql57==

  1. 設定mysql目錄訪問許可權,使用者組
#將mysql目錄訪問許可權賦為myql使用者
[root@VM_0_17_centos mysql57]# chown -R mysql /usr/mysql/mysql57

#改變mysql目錄的使用者組屬於mysql組
[root@VM_0_17_centos mysql57]# chgrp -R mysql /usr/mysql/mysql57

#檢視mysql目錄下所有的目錄及資料夾所屬組合使用者
[root@VM_0_17_centos mysql57]# cd /usr/mysql/mysql57

[root@VM_0_17_centos mysql57]# ll
total 56
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 bin
-rw-r--r--  1 mysql mysql 17987 Dec 28  2017 COPYING
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:40 data
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 docs
drwxr-xr-x  3 mysql mysql  4096 Aug 11 21:23 include
drwxr-xr-x  5 mysql mysql  4096 Aug 11 21:24 lib
drwxr-xr-x  4 mysql mysql  4096 Aug 11 21:23 man
-rw-r--r--  1 mysql mysql  2478 Dec 28  2017 README
drwxr-xr-x 28 mysql mysql  4096 Aug 11 21:24 share
drwxr-xr-x  2 mysql mysql  4096 Aug 11 21:24 support-files
複製程式碼

許可權被修改

  1. ==配置mysql==(重點部分)

建立以下檔案,設定訪問許可權,用於mysql配置中

第一步:==建立檔案/tmp/mysql.sock==。並設定許可權

建立檔案


[root@VM_0_17_centos mysql57]# mkdir tmp
[root@VM_0_17_centos mysql57]# cd tmp

[root@VM_0_17_centos tmp]# ll
total 0

[root@VM_0_17_centos tmp]# touch mysql.sock

[root@VM_0_17_centos tmp]# ll
total 0
-rw-r--r-- 1 root root 0 Aug 11 21:59 mysql.sock
複製程式碼

設定許可權

[root@VM_0_17_centos tmp]# chown -R mysql:mysql /usr/mysql/mysql57/tmp/mysql.sock

[root@VM_0_17_centos tmp]# chmod 755 /usr/mysql/mysql57/tmp/mysql.sock
複製程式碼

第二步:==建立/log/mysqld.log==。並設定許可權

[root@VM_0_17_centos mysql57]# mkdir log
[root@VM_0_17_centos mysql57]# cd log

[root@VM_0_17_centos log]# ll
total 0

[root@VM_0_17_centos log]# touch mysqld.log
[root@VM_0_17_centos log]# chown -R mysql:mysql /usr/mysql/mysql57/log/mysqld.log
[root@VM_0_17_centos log]# chmod 755 /usr/mysql/mysql57/log/mysqld.log
複製程式碼

如果出錯,說明路徑沒有寫全,要寫絕對路徑

第三步:==建立/tmp/mysqld.pid==。並設定許可權

[root@VM_0_17_centos log]# cd ../tmp
[root@VM_0_17_centos tmp]# touch mysqld.pid
[root@VM_0_17_centos tmp]# chown -R mysql:mysql /usr/local/mysql57/tmp/mysqld.pid 
[root@VM_0_17_centos tmp]# chmod 755 /usr/local/mysql57/tmp/mysqld.pid 
複製程式碼
  1. ==初始化mysql==
[root@VM_0_17_centos mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/mysql/mysql57/ --datadir=/usr/local/mysql57/data/
複製程式碼

可能會報錯。報錯資訊

 bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
複製程式碼

  解決方法: 原因: yum安裝的是libnuma.so.1,但安裝時預設安裝的是32的,而db2需要的是64位的

  • 1.如果已經安裝了libnuma.so.1,先yum remove libnuma.so.1
[root@VM_0_17_centos mysql57]# yum remove libnuma.so.1
複製程式碼
  • 2.安裝依賴包 yum -y install numactl.x86_64
[root@VM_0_17_centos mysql57]# yum -y install numactl.x86_64
複製程式碼
  • 3.安裝完成後重新,執行
[root@VM_0_17_centos mysql57]# bin/mysqld --initialize --user=mysql --basedir=/usr/mysql/mysql57/ --datadir=/usr/local/mysql57/data/
複製程式碼

  ==安裝成功== 臨時密碼

在這裡插入圖片描述

 配置SSL引數(在mysql目錄下)

[root@VM_0_17_centos mysql57]# bin/mysql_ssl_rsa_setup --datadir=/usr/mysql/mysql57/data/
複製程式碼

 由於mysql-5.7.23版本my.cnf不在/support-files下,故我們==建立my.cnf==檔案。

[root@VM_0_17_centos mysql57]# touch /etc/my.cnf
[root@VM_0_17_centos mysql57]# vim /etc/my.cnf
複製程式碼

  複製如下內容(每個人安裝路徑可能不一樣,==需要修改==):

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql57
datadir=/usr/local/mysql57/data
port = 3306
socket=/tmp/mysql.sock
log-error=/usr/local/mysql57/log/mysqld.log
pid-file=/usr/local/mysql57/tmp/mysqld.pid
#表名不區分大小寫
lower_case_table_names = 1
max_connections=5000
sql_mode=STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
複製程式碼

配置完成

  1. 啟動mysql
  • 方式一
[root@VM_0_17_centos mysql57]# bin/mysqld_safe --user=mysql &
複製程式碼

檢視mysql的執行情況

[root@VM_0_17_centos mysql57]# ps -ef |grep mysql
複製程式碼

第一我沒有成功,因為我有個地方出問題了。我在方式二配置成功。

  • 方式二 配置mysql自動啟動(可根據需要配置)
[root@VM_0_17_centos mysql57]# cp support-files/mysql.server /etc/init.d/mysql
[root@VM_0_17_centos mysql57]# vim /etc/init.d/mysql
複製程式碼

新增配置(i 進入編輯;esc--> :wq儲存退出)

若配置了mysql自啟動方式則可以使用服務方式啟動mysql

#檢視mysql狀態
/etc/init.d/mysql status 或者 service mysql status
#啟動mysql
/etc/init.d/mysql start 或者 service mysql start
#停止mysql
/etc/init.d/mysql stop 或者 service mysql stop
#重新啟動mysql
/etc/init.d/mysql restart 或者 service mysql restart
檢視mysql服務說明啟動成功
ps -ef|grep mysql
 啟動mysql
複製程式碼
[root@VM_0_17_centos tmp]# service mysql start
複製程式碼

Starting MySQL. ERROR! The server quit without updating PID file (/usr/local/mysql57/tmp/mysqld.pid). ==報錯了,上面說沒有/usr/local/mysql57/tmp/mysqld.pid。==

  解決方案:

a) 建立檔案/usr/local/mysql57/tmp/mysqld.pid

b) 修改許可權

修改存放mysqld.pid檔案目錄的許可權

chown -R mysql /usr/local/mysql57/tmp
chgrp -R mysql /usr/local/mysql57/tmp
chmod 777 /usr/local/mysql57/tmp
複製程式碼

重新啟動成功(如果還不行,就是中間某個步驟寫錯了。或者直接把mysql目錄許可權賦為777)

[root@VM_0_17_centos tmp]# /etc/init.d/mysql start
Starting MySQL. SUCCESS! 
複製程式碼
  1. 配置mysql到環境變數
[root@VM_0_17_centos tmp]# vim /etc/profile
複製程式碼

在這裡插入圖片描述

export MYSQL57_HOME=/usr/mysql/mysql57/bin 
export PATH=$PATH:${MYSQ57_HOME}
複製程式碼

這個地方是冒號 ( :)

設定環境變數立即生效

[root@VM_0_17_centos tmp]# source /etc/profile
複製程式碼
  1. mysql忘記密碼

切換到mysql下的bin目錄

[root@localhost bin]# ./mysql -u root -p
Enter password: 

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
複製程式碼

密碼錯誤。。而且之前安裝的密碼也忘記了

  解決方案:

  • 第一步:跳過MySQL的密碼認證過程

(注:windows下修改的是my.ini)

[root@VM_0_17_centos bin]# vim /etc/my.cnf
複製程式碼

在[mysqld]後面任意一行新增“==skip-grant-tables== ”用來跳過密碼驗證的過程,如下圖所示:

在這裡插入圖片描述

儲存並退出(esc--> :wq)

  • 第二步:重啟mysql
[root@VM_0_17_centos bin]# /etc/init.d/mysql restart
Shutting down MySQL.. SUCCESS! 
Starting MySQL. SUCCESS!
複製程式碼
  • 第三步:登入mysql

進入mysql/bin目錄,啟動mysql

[root@VM_0_17_centos bin]# ./mysql
複製程式碼

啟動成功

  • 第四步:使用sql語句修改密碼
mysql> use mysql;
mysql> update user set authentication_string=password(" 你的新密碼 ") where user="root";
mysql> flush privileges;
mysql> quit
複製程式碼
  • 第五步:重新編輯my.cnf

去掉[mysqld]後面的“skip-grant-tables”

[root@VM_0_17_centos bin]# vim /etc/my.cnf 
複製程式碼

在這裡插入圖片描述

重啟mysql

[root@VM_0_17_centos bin]# /etc/init.d/mysql restart
##注意有的版本需要使用mysqld命令
[root@VM_0_17_centos bin]# /etc/init.d/mysqld restart
複製程式碼
  1. 設定mysql遠端登入

先本地登入mysql

[root@localhost bin]# ./mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21

Copyright (c) 2000,2018,Oracle and/or its affiliates. All rights reserved.
 
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
 
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
複製程式碼
  • 1.報錯

突然報錯

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
複製程式碼
mysql> use mysql
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
複製程式碼

==解決方案:需要重新修改一下密碼==

mysql> alter user 'root'@'localhost' identified by '修改的密碼';
mysql> flush privileges;
mysql> quit;
複製程式碼
  • 2.繼續配置
mysql> use mysql;
#改表法
mysql> update  user  set host='%' where user='root';
#授權法
mysql> GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypwd' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES; 
mysql> quit;
複製程式碼
  • 3.重啟mysql
[root@VM_0_17_centos bin]# service mysql restart;
##注意有的版本需要使用mysqld命令
[root@VM_0_17_centos bin]# /etc/init.d/mysqld restart
複製程式碼
  • 4.設定防火牆

a)配置防火牆開啟3306埠

[root@VM_0_17_centos bin]# /sbin/iptables -I INPUT -p tcp --dport 3306-j ACCEPT

[root@VM_0_17_centos bin]# /etc/rc.d/init.d/iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:   [  OK  ]

[root@VM_0_17_centos bin]# /etc/rc.d/init.d/iptables restart
iptables: Setting chains to policy ACCEPT: filter         	[  OK  ]
iptables: Flushing firewall rules:                     	[  OK  ]
iptables: Unloading modules:                       	[  OK  ]
iptables: Applying firewall rules:                    	[  OK  ]
複製程式碼

b)臨時關閉防火牆

[root@VM_0_17_centos bin]# service iptables stop
複製程式碼

c)永久關閉防火牆

重啟後永久生效

[root@VM_0_17_centos  bin]# chkconfig iptables off
複製程式碼

使用Navicat工具連線即可

在這裡插入圖片描述

5.部署專案

下面是將專案打包部署到伺服器上面了,有空的話我會接著寫下面的內容!!