Linux系統搭建Java環境【JDK、Tomcat、MySQL】一篇就夠
前言:所有專案在完成開發後都會部署上線的,一般都是用Linux系統作為伺服器的,很少使用Windows Server(大多數專案的開發都是在Windows桌面系統完成的),一般有專門負責上線的人員。作為一個開發人員當然也能玩轉Linux,畢竟Linux是很多IT人員的喜好。 下面就使用純淨的Linux系統完成Java Web專案的部署。
- 安裝一個VMware workstation
- 在虛擬機器器上面安裝CentOS系統 (這裡使用的CentOS6.7 64位)
- 安裝Java開發環境JDK 1.8
- Tomcat8.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工具(其他工具可以!)
5.用命令ifconfig檢視IP 地址,然後可以考慮用Xshell來連線虛擬機器器,這樣操作命令會比較方便,不用頻繁的切換出來或者切換出去。
上面的安裝及配置有問題的可以自行百度,網上資源很多。主要是搭建好Linux系統環境.....
二、JDK安裝
-
首先下載一個JDK版本,我這裡下載的是==jdk-8u221-linux-x64.gz== 這個版本。(JDK1.8目前用得比較多!) 也可以自行到JDK官網下載
-
用xftp上傳到linux環境中去。上傳的路徑為: /usr/java
將剛才下載好的 壓縮包解壓,得到一個jdk1.8.0_221的資料夾。使用tar -xzvf命令解壓 然後用Xftp上傳至linux環境中去。有兩種方式 第一種,通過功能欄紅框內的“向右傳輸” 傳過去 第二種,直接拖動資料夾,拖過去。 非常重要的一點,linux環境中的路徑 是 /usr/java..... JDK傳過去之後,現在就開始著手配置JDK環境了 -
配置JDK環境,需要給予這個資料夾最高的許可權,為了後續的方便,這邊直接賦予最高許可權 首先,通過XFTP開啟Xshell(開啟方式上一節有講到) 1)切換到"/“目錄下 cd ../.. 2)切換到local路徑下 cd /usr/java 3)賦予JDK檔案最高許可權 chmod 777 -R jdk1.8.0_221
-
配置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的配置
-
首先下載 一個tomcat版本,我這裡用的是apache-tomcat-6.0.37版本apache-tomcat-6.0.37.tar.gz是對應的壓縮包。
-
可以用XFTP 直接把已經解壓的apache-tomcat-6.0.37上傳到 /usr/local路徑,上傳完畢,然後這裡就需要對環境變數進行配置,然後後面的tomcat才會順利啟動
-
配置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
- 選擇yum安裝
- 通過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 說明:使用官方編譯好的二進位制檔案進行安裝
- 移動安裝檔案到指定目錄
- 檢查是否安裝Mysql
rpm -qa | grep mysql
複製程式碼
- 解壓
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==
- 設定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
複製程式碼
許可權被修改
- ==配置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
複製程式碼
- ==初始化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
複製程式碼
配置完成
- 啟動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!
複製程式碼
- 配置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
複製程式碼
- 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
複製程式碼
- 設定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.部署專案
下面是將專案打包部署到伺服器上面了,有空的話我會接著寫下面的內容!!
- 通過打包成war檔案部署