一、安裝JDK
1.卸載預裝的openJDK
有些云服務器預裝了JDK,查看是否預裝命令:
rpm -qa|grep jdk
若存在,卸載。命令:
yum -y remove java java-1.8.0-openjdk
查看卸載情況:
java -version
2.安裝JDK
阿里云的yum源默認是openJDK,所以需要我們自己去oracle官網找到url地址,用wget命令下載。如果直接使用wget命令的話,雖然成功了,但是應該是安裝不了的,這是由于oracle在下載jdk的時候需要用戶勾選接受它的協議。所以推薦選擇本地下載然后上傳到服務器中。
從官網下載 目前版本已經出到了jdk10,用的最廣泛的是jdk1.8,選擇
.rmp
文件下載。出于好奇的心理,我選擇了jdk10。-
上傳到服務器
- 進入
/usr
目錄下新建文件mkdir java
- 使用
rz
命令上傳,會彈出文件選擇框,選擇上傳的jdk 。若使用rz
命令不可用,使用yum install lrzsz
安裝rz sz
命令,等待上傳完畢。
- 進入
安裝
- 進入你的安裝包目錄,使用命令
yum install jdk-10.0.2_linux-x64_bin.rpm
安裝,完成后若此時使用java -version
出現以下錯誤,執行sudo yum install glibc.i686
這個命令即可解決此問題。
jdk-bash: /usr/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
- 若此時執行
java -version
命令若報錯,是因為Linux也需配置環境變量。執行vim/etc/profile
,打開環境變量配置文件,在文件底部輸入以下信息,并保存。
# java
JAVA_HOME=/usr/java/jdk-10.0.2
JRE_HOME=$JAVA_HOME/jre
PATH=PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH
執行java -version
命令,出現
java version "10.0.2" 2018-07-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)
安裝成功
二、安裝tomcat
步驟和安裝JDK一樣
- 下載Tomcat到本地,我仍然選擇了最新版本Tomcat9.0.11。然后上傳至
usr/tomcat
,在該目錄下解壓tar -zxf apache-tomcat-9.0.11.tar.gz
。 - 執行
./apache-tomcat-9.0.11/bin/startup.sh
命令,若如下,安裝成功
Using CATALINA_BASE: /usr/tomcat9/apache-tomcat-9.0.11
Using CATALINA_HOME: /usr/tomcat9/apache-tomcat-9.0.11
Using CATALINA_TMPDIR: /usr/tomcat9/apache-tomcat-9.0.11/temp
Using JRE_HOME: /usr
Using CLASSPATH: /usr/tomcat9/apache-tomcat-9.0.11/bin/bootstrap.jar:/usr/tomcat9/apache-tomcat-9.0.11/bin/tomcat-juli.jar
Tomcat started.
- 啟動tomcat后,我們還需測試是否能從外網訪問,在本地瀏覽器中輸入
公網ip:8080
,如果訪問失敗,是因為阿里云需要配置安全組開放8080端口。解決方案為:去云服務器管理控制臺添加安全組規則,詳情參考阿里云安全組規則配置及Tomcat外網訪問。配置完畢后即可從本地訪問服務器tomcat
三、安裝mysql
網上大多數教程都是安裝mysql5.6和5.7,但是mysql8.0已經問世,并且在性能上有著很大提升,詳情見關于MySQL 8.0的幾個重點,都在這里,所以選擇安裝mysql8.0。
- 檢查是否已安裝過mysql其它版本 。命令:
rpm -qa | grep mysql
。有則刪掉,例如:命令yum -y remove mysql-community-client-5.6.38-2.el7.x86_64
。 - 檢查centos是否自帶mariadb,有則刪掉,命令同上類似。
- 因為centos的yum 源中默認是沒有mysql的,所以使用wget命令下載rpm包,命令:
wget https://dev.mysql.com/get/mysql-community-server-8.0.12-1.el7.x86_64.rpm
4.進入rpm包目錄,使用命令yum install mysql-community-server-8.0.12-1.el7.x86_64.rpm
,然后你會發現安裝出錯,顯示缺少common和client包,這是因為mysql5.7版本以前只安裝mysql-server和mysql-client兩個rpm包即可。從mysql5.7版本之后mysql-community-client
依賴于mysql-community-libs
,mysql-community-server
依賴于mysql-community-common
共計需要安裝4個rpm包。所以使用wget
命令依次下載這三個rpm包到目錄。具體為
mysql-community-client-8.0.12-1.el7.x86_64.rpm mysql-community-libs-8.0.12-1.el7.x86_64.rpm
mysql-community-common-8.0.12-1.el7.x86_64.rpm
- 按照lib-client -common-server的順序依次安裝。如果安裝client包過程中出現mariadb存在而導出出錯,使用命令
rpm -pa | grep mariadb
命令,可能出現以下類似的信息
mariadb-libs-5.5.56-2.el7.x86_64
使用rpm -e mariadb-libs-5.5.56-2.el7.x86_64
刪掉,重新安裝client包。
- 安裝成功后,我們需要修改mysql初始密碼。首先執行命令
systemctl start mysqld.service
開啟mysql服務。隨后我們執行命令grep 'temporary password' /var/log/mysqld.log
查看初始密碼。然后登陸mysql 命令mysql -u root -p
,登陸后執行修改密碼的命令
alter user 'root'@'localhost' identified by '123456'
會出現以下報錯
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
這是因為mysql對密碼等級和規則有限制,解決辦法有兩個,第一修改密碼比如Admin_001.
,第二調整MySQL密碼驗證規則,修改 policy 和 length 的值。經過查資料,網上大部分的方法如下
mysql> set global validate_password_policy=0;
mysql> set global validate_password_length=1;
在mysql5.7中好使,mysql8.0中卻行不通,在mysql8.0中validate_password_policy
和validate_password_length
變量不存在。取而替代的validate_password.policy
和validate_password.length
。詳情和解決方法見博文:解決MySQL8.0報錯:Unknown system variable 'validate_password_policy'。了解原由后執行命令
mysql> set global validate_password.policy=0;
mysql> set global validate_password.length=1;
再重新設置密碼
- 重置密碼后,我們需要從遠程登錄mysql,首先在阿里云控制臺添加安全組,開放3306端口,詳情見tomcat配置。然后連接,會出現類似以下的錯誤
ERROR 1103: Host *.*.*.* is not allowed to connect to
這是由于mysql服務端root用戶所對應的客戶端權限設置問題。默認所對應的客戶端地址只有localhost(也就是服務端的機器),所以要增加相應的地址。此處,我們增加任何地址都可以訪問mysql服務端的root用戶。具體sql語句為:
mysql -u root –p
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
修改完畢后再嘗試登陸,可能會出現以下錯誤:
錯誤碼:1251 - Client does not support authentication protocol requested by server...
原因是mysql8 之前的版本中加密規則是mysql_native_password,而在mysql8之后,加密規則是caching_sha2_password,解決問題方法有兩種,一種是升級navicat驅動,一種是把mysql用戶登錄密碼加密規則還原成mysql_native_password。詳情見博文
Navicat連接Mysql8.0.11出現1251錯誤
四、總結
過程并不順利,特別是mysql8.0,8.0和之前的版本還是有較大的改動的,不過通過一次次的查找資料總算成功的配置成功。且行且珍惜