linux伺服器部署環境(阿里雲 centos7.4 64位+ jdk+tomcat+mysql安裝)
1.1 準備階段 1、修改 vim 讓文字編輯器顯示行號:vim /etc/vimrc 在第一行插入:set number 然後:wq儲存 2 、修改 ssh 埠 22:vim /etc/ssh/sshd_config 第17行 把 #Port 22 改為 你想要的埠 3 、修改root 密碼:passwd 輸入密碼 ,如果非root 先切換
1.2 安裝 jdk yum list installed |grep java 檢視是否安裝了jdk yum -y list java* 檢視 yum庫裡有哪些版本可以安裝 yum -y install java-1.8.0-openjdk* 安裝1.8的 jdk
修改tomcat埠 和編碼:vi conf/server.xml <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8" redirectPort="8443" /> 修改tomcat啟動引數,主要是調大記憶體:vi /home/tomcat8/bin/catalina.sh 第 283行 (tomcat8) 283 # ----- Execute The Requested Command ----------------------------------------- 284 JAVA_OPTS='-server -Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=512m' cd tomcat8/bin ./startup.sh 啟動 發現啟動好慢, 需要2分鐘以上***************************啟動慢**************** 網上說是因為系統算隨機數的策略引起的,解決方案是調整大小 yum install rng-tools systemctl start rngd cp /usr/lib/systemd/system/rngd.service /etc/systemd/system vim /etc/systemd/system/rngd.service 修改其中ExcStart為:ExecStart=/sbin/rngd -f -r /dev/urandom 儲存後重置服務 systemctl daemon-reload systemctl restart rngd 重啟tomcat 發現啟動非常快 設定tomcat 開機啟動:vi /etc/rc.d/rc.local 增加1行:/home/zms/tomcat8/bin/startup.sh start 然後設定 rc.local檔案的執行權:cd /etc/rc.d chmod +x rc.local 或者 chmod 777 rc.local 重啟伺服器 reboot 開機 tomcat 能自己啟動了 如果還不能啟動,那麼操作如下 **************無法自動啟動******************************** vim /etc/profile 在最後面加入 JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64 (不同版本位置不同 cd /etc/alternatives 然後 ls -l 就能看到 比如 java-1.8.0-openjdk-1.8.0.141-1.b16.el7_3.x86_64) export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export PATH=$PATH:$JAVA_HOME/bin 然後:source /etc/profile
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
1.4 安裝 Mysql 5.7
3.1 下載mysql源安裝包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
3.2 安裝mysql源
shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm
3.3 驗證源安裝是否成功
yum repolist enabled | grep "mysql.*-community.*"
3.4 設定預設需要安裝的mysql版本(如果安裝5.7可以忽略本步驟)
可以修改vim /etc/yum.repos.d/mysql-community.repo源,
改變預設安裝的mysql版本。比如要安裝5.6版本,將5.7源的enabled=1改成enabled=0。
然後再將5.6源的enabled=0改成enabled=1即可。
3.5 安裝
yum install mysql-community-server
3.6 啟動 mysql
systemctl start mysqld
#停止systemctl stop mysqld
3.7 檢視狀態
systemctl status mysqld
3.8 設定開機啟動
systemctl enable mysqld
systemctl daemon-reload
3.9 修改root本地登入密碼
mysql安裝完成之後,在/var/log/mysqld.log檔案中給root生成了一個預設密碼。(有時候生成的密碼是特殊字元,mysql -uroot -p 會出問題,比如生成的密碼 sX;qQZ.L;6Ml
那就用轉義 sX\;qQZ.L\;6Ml 即可)
shell>grep 'temporary password' /var/log/mysqld.log
2017-05-23T04:53:37.967825Z 1 [Note] A temporary password is generated for [email protected]: wztxYpby+2Gr
然後登入mysql進行修改: 注意 密碼有策略 大小寫數字和特殊字元 否則報錯
shell> mysql -uroot -pwztxYpby+2Gr(可能需要重啟先,因為可能會報
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) )
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '[email protected]';
- 1
3.10 增加遠端登入用
#mysql -uroot [email protected]'
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '[email protected]' WITH GRANT OPTION;
增加開發人員使用賬號
GRANT ALL PRIVILEGES ON *.* TO 'dev'@'%' IDENTIFIED BY '[email protected]' WITH GRANT OPTION;
3.11 配置編碼和優化配置 `vim /etc/my.cnf` 把下面的複製 覆蓋 my.cnf
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
[client]
port=3306
default-character-set=utf8
[mysqld]
port=3306
character_set_server=utf8
init_connect='SET NAMES utf8'
collation-server=utf8_general_ci
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#優化引數
#設定最大連線數 預設500
max_connections=1024
#臨時表分配的記憶體 預設16M
tmp_table_size=200M
#定義了使用者可以建立的記憶體表(memory table)的大小。這個值用來計算記憶體表的最大行數值。這個變數支援動態改變 ,預設16M
max_heap_table_size=500M
#一個事務,在沒有提交的時候,產生的日誌,記錄到Cache中;等到事務提交需要提交的時候,則把日誌持久化到磁碟。預設binlog_cache_size大小32K
binlog_cache_size = 1M
#事務隔離級別 預設 REPEATABLE-READ 總共4種 READ-UNCOMMITTED, READ-COMMITTED, REPEATABLE-READ, SERIALIZABLE
transaction-isolation=REPEATABLE-READ
#資料庫欄位名名是否區分大小寫 0不區分 1 區分
lower_case_table_names = 1
#預設mysql對很多聯合查詢會報警,可以修改sql_mode sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
3.12重啟伺服器 用新埠連結 ssh 用新密碼連結資料庫
- 1
1.5、呼叫系統服務自動備份資料庫
操作步驟
1. 確認crontab是否安裝:
執行 crontab 命令如果報 command not found,就表明沒有安裝
2. 安裝 crontab
執行 yum install -y vixie-cron
3. 確認是否安裝成功:
執行 crontab -l
4. 看是否設定了開機自動啟動
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
systemctl is-enabled crond.service
- 1
如果沒有開機自啟 則執行
5. 啟動crontab
service crond start
6檢視狀態
service crond status
- 1
- 2
- 3
- 4
- 5
- 6
2 建立 資料夾
/home/mysql_dump
/home/mysql_dump/data
- 1
- 2
3 cd /home/mysql_dump touch mysql_back.sh vi mysql_back.sh內容為:
DB_NAME="資料庫名"
DB_USER="root"
DB_PASS="資料庫密碼"
BIN_DIR="/usr/bin"
BCK_DIR="/home/mysql_dump/data"
DATE=`date "+%Y-%m-%d"`
mkdir -p $BCK_DIR
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -E -R --triggers $DB_NAME > $BCK_DIR/$DB_NAME.dump_$DATE.sql
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
配置好後 先手工執行 mysql_back.sh 看能否備份 如果成功, 下一步 繼續讓計算機 自動備份
4 設定 定時任務
root使用者登入
crontab -e
- 1
- 2
- 3
輸入
分鐘/小時/日/月/周 *表示所有
如果每天凌晨 1:59執行 就
59 01 * * * /home/mysql_dump/mysql_back.sh
- 1
5 如果失敗呢 如何除錯? 1 手工執行 /home/mysql_dump/mysql_back.sh 檢查錯誤 2 如果1成功,則說明指令碼沒問題 可以crontab -e 把時間設定為下一分鐘 然後再開啟一個終端 檢視 日誌 tail -f /var/log/cron
1.6 安裝redis
5.1 下載-- 官網下載
- 1
cd /home
wget http://download.redis.io/releases/redis-4.0.0.tar.gz
- 1
- 2
5.2 解壓
tar xzf redis-4.0.0.tar.gz
資料夾改名字為redis
mv redis-4.0.0 redis
5.3 cd redis 然後 make
5.4 啟動
cd src
./redis-server & 加&是讓redis在後臺執行
5.5 再開啟一個終端
cd /home/zms/redis/src
./redis-cli
5.6 客戶端連結上了
設定一個值 name=zms
set name zms
獲取一個值 name 將顯示 zms
get name
5.7 設定密碼和埠
cd /home/zms/redis/
vi redis.conf
大概 500行
# requirepass foobared 改為 requirepass 123456
// 使用密碼後, redis-cli連結後, auth 密碼 , 密碼對的話 會顯示ok
Port 6379 改為 11111 //大概92行
5.8 重啟 redis
./src/redis-cli
shutdown
./src/redis-server
5.9 開機自動啟動
vi /etc/rc.d/rc.local
增加一行
/home/zms/redis/src/redis-server /home/zms/redis/redis.conf //因為在redis.conf修改了埠和密碼,所以這裡指定使用這個conf檔案啟動
然後
chmod 777 /etc/rc.d/rc.local
5.10 程式連結不上redis 解決
redis預設只能localhost登入,所以需要開啟遠端登入。解決方法如下:
在redis的配置檔案redis.conf中,找到bind localhost註釋掉。
或者 改成bind 0.0.0.0
本地連線 redis-cli -p 埠(如果是6379就不需要 -p 6379)
遠端連線 redis-cli -h 192.168.1.103 -p 埠
遠端連結如果提示 在保護環境下的話,要麼設定密碼, 要麼修改redis.conf 把protected-mode 由 yes改為 no
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
<link href="https://csdnimg.cn/release/phoenix/mdeditor/markdown_views-7f770a53f2.css" rel="stylesheet">
</div>
<script>
(function(){
function setArticleH(btnReadmore,posi){
var winH = $(window).height();
var articleBox = $("div.article_content");
var artH = articleBox.height();
if(artH > winH*posi){
articleBox.css({
'height':winH*posi+'px',
'overflow':'hidden'
})
btnReadmore.click(function(){
articleBox.removeAttr("style");
$(this).parent().remove();
})
}else{
btnReadmore.parent().remove();
}
}
var btnReadmore = $("#btn-readmore");
if(btnReadmore.length>0){
if(currentUserName){
setArticleH(btnReadmore,3);
}else{
setArticleH(btnReadmore,1.2);
}
}
})()
</script>
</article>