centos7 安裝jdk和tomcat mysql(親測)
安裝jdk
1:首先到官網下載https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
jdk-8u181-linux-x64.tar.gz
2:FTP到指定位置 sudo mkdir /usr/local/java
3:解壓 sudo tar zxvf jdk-8u181-linux-x64.tar.gz
4:修改環境變數 vi /etc/profile 建議安裝vim yum -y install vim
用 vim /etc/profile 修改之後 :wq
--------------複製內容開始---------
JAVA_HOME=/usr/local/java/jdk1.8.0
JRE_HOME=/usr/local/java/jdk1.8.0/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$JAVA_HOME/bin:$PATH
export PATH JAVA_HOME CLASSPATH
--------------複製內容結尾------------------
使環境變數生效 source /etc/profile
驗證是否正確:echo $JAVA_HOME echo $CLASSPATH echo $PATH
檢驗最後是否成功 java -version
安裝tomcat
1:官方下載tar.gz包,上傳到/usr/local/tomcat目錄
2:解壓 tar -zxv -f apache-tomcat-8.0.53.tar.gz
3:重新命名資料夾為apache-tomcat
4 在/etc/profile
檔案後再追加一條TOMCAT的環境變數
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat
備註:CATALINA是Tomcat的啟動程式,Tomcat的啟動指令碼都是使用CATALINA_HOME作為變數,所以這裡我們要設定CATALINA_HOME
使用source
命令完成是配置生效
source /etc/profile
5:將Tomcat配置為服務
將Tomcat配置為系統服務後,就方便使用service
命令來啟動或關閉Tomcat服務省的每次啟動後還要到tomcat的bin目錄下找startup指令碼
# 把tomcat的指令碼檔案拷一份到/etc/init.d目錄
cp /usr/local/tomcat/apache-tomcat/bin/catalina.sh /etc/init.d/tomcat8
# 並把改指令碼授權給所有使用者執行
chmod 755 /etc/init.d/tomcat8
拷貝的指令碼並不能直接使用,還需要修改新增一些配置。
vim /etc/init.d/tomcat8
新增chkconfig和description兩行註釋。有這兩行註釋才能支援chkconfig命令配置服務;同時加上JAVA_HOME和CATALINA_HOME兩個變數的宣告。加在第二行開始的位置
#chkconfig: 2345 10 90
#description: tomcat8 service
export JAVA_HOME=/usr/local/java/jdk1.8.0
export CATALINA_HOME=/usr/local/tomcat/apache-tomcat
這裡配置的2345指的是2345這4個執行級別會開機自啟動,10是啟動優先順序,90是關閉優先順序,優先順序的值為0-99,越小優先順序越高。
前面在/etc/profile檔案配置中的環境變數只會在shell登入後執行,開機的過程中並不會載入/etc/profile,但是tomcat的啟動指令碼中需要這兩個變數,所以需要在啟動指令碼中加入這兩個變數。
使用chkconfig --add
命令新增服務
[[email protected] ~]# chkconfig --add tomcat8
配置完成後Tomcat服務即可開機自啟動
同時還可以使用service tomcat8 start
和service tomcat8 stop
命令來啟動和停止tomcat服務。
chkconfig --list 檢視哪些開機服務
配置防火牆開啟8080埠並訪問測試
# 對內網網段,開啟8080埠
iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 8080 -j ACCEPT
防火牆設定
最近公司新的server要求用CentOS7, 發現以前CentOS 6 系列中的 iptables 相關命令不能用了,
查了下,發現Centos 7使用firewalld代替了原來的iptables,centos 6也可以使用
使用方法如下:
>>> 關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
>>> 開啟埠
firewall-cmd --zone=public --add-port=80/tcp --permanent
命令含義:
--zone #作用域
--add-port=80/tcp #新增埠,格式為:埠/通訊協議
--permanent #永久生效,沒有此引數重啟後失效
>>> 重啟防火牆
firewall-cmd --reload
檢視已經開放的埠:
firewall-cmd --list-ports
常用命令介紹
firewall-cmd --state ##檢視防火牆狀態,是否是running
firewall-cmd --reload ##重新載入配置,比如新增規則之後,需要執行此命令
firewall-cmd --get-zones ##列出支援的zone
firewall-cmd --get-services ##列出支援的服務,在列表中的服務是放行的
firewall-cmd --query-service ftp ##檢視ftp服務是否支援,返回yes或者no
firewall-cmd --add-service=ftp ##臨時開放ftp服務
firewall-cmd --add-service=ftp --permanent ##永久開放ftp服務
firewall-cmd --remove-service=ftp --permanent ##永久移除ftp服務
firewall-cmd --add-port=80/tcp --permanent ##永久新增80埠
iptables -L -n ##檢視規則,這個命令是和iptables的相同的
man firewall-cmd ##檢視幫助
更多命令,使用 firewall-cmd --help 檢視幫助檔案
>>> CentOS 7.0預設使用的是firewall作為防火牆,使用iptables必須重新設定一下
1、直接關閉防火牆
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall開機啟動
2、設定 iptables service
yum -y install iptables-services
如果要修改防火牆配置,如增加防火牆埠3306
vi /etc/sysconfig/iptables
增加規則
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
儲存退出後
systemctl restart iptables.service #重啟防火牆使配置生效
systemctl enable iptables.service #設定防火牆開機啟動
最後重啟系統使設定生效即可。
mysql安裝
1檢視Linux發行版本
[[email protected] ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
2 下載MySQL官方的Yum Repository
wget -i http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
3:yum -y install mysql-community-server
找不到:
rpm -ivh https://repo.mysql.com//mysql57-community-release-el7-11.noarch.rpm
4:安裝時候報了一個錯
Error: Package: mysql-community-server-5.7.24-1.el6.x86_64 (mysql57-community)
執行:rpm -ivh mysql-community-release-el7-5.noarch.rpm再執行3
5:啟動資料庫
systemctl start mysqld.service
systemctl status mysqld.service 檢視啟動狀
改密碼詳細步驟
1. sudo vim /etc/my.cnf 加入 skip-grant-tables
2.重啟mysql systemctl restart mysqld
3.終端輸入mysql 直接登入到資料庫 mysql>use mysql ; (不要去掉;)
4.update mysql.user set authentication_string=password("你的密碼大寫字母和數字儘量多而複雜") where user="root";(不要去掉;)
exit/quit/\q
5.編輯my.cnf檔案刪掉skip-grant-tables 這一行
然後重啟MySQL方法1:systemctl restart mysqld
,2:/etc/init.d/mysqld restart,否則MySQL仍能免密碼登入
6.mysql -uroot -p
7.輸入密碼回車
mysql> SET PASSWORD = PASSWORD('Xiaoming250');
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyPassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
錯誤:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
接下來MySQL就可以正常運行了。
firewall-cmd --zone=public --add-port=3306/tcp --permanent 開啟3306
firewall-cmd --reload
問題1:
mysql】You must reset your password using ALTER USER statement before executing this statement報錯處理
解決方式如下:
MySQL版本5.7.6版本以前使用者可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('Xiaoming250');
MySQL版本5.7.6版本開始的使用者可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'Xiaoming250';
如果不清楚自己是什麼版本,可以將兩條都嘗試一下