个人网站搭建时linux中的相关配置记录(mysql,jdk,nginx,redis)
一、開發計劃(包括準備工作,網站大致需求等)
二、服務器(linux/centos)購買、相應環境配置(jdk),軟件安裝(mysql, nginx, redis)、域名解析
三、原型圖、代碼開發(vue.js, springboot)
?
二:
1. 安裝mysql(壓縮包形式)記錄(linux) 另一種快捷安裝,參考:https://www.cnblogs.com/wishwzp/p/7113403.html
a. 下載mysql安裝包(鏈接: https://pan.baidu.com/s/1RZzGfEd_AdSMR8UHrFSUjg 密碼: yrw3)
b. 將壓縮包拷貝至/usr/local中(我用的xftp)
c.?安裝依賴: [root@mufeng local]# yum -y install perl perl-devel autoconf libaio
d. 解壓: [root@mufeng local]#?tar?-zxvf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
重命名解壓后的mysql目錄: [root@mufeng local]#?mv mysql-5.6.33-linux-glibc2.5-x86_64 mysql
e.?添加用戶組和用戶:
檢查mysql組和用戶是否存在,如無創建
[root@mufeng local]# cat /etc/group|grep mysql
mysql:x:1000:
[root@mufeng local]# cat /etc/passwd|grep mysql
mysql:x:997:1000::/home/mysql:/bin/bash
若無則:添加用戶組: [root@mufeng local]#?groupadd mysql
添加用戶mysql 到用戶組mysql:[root@mufeng local]# useradd -r -g mysql mysql f. 賦予權限: [root@mufeng local]# chown -R mysql mysql/
[root@mufeng local]# chgrp -R mysql mysql/
g. 安裝和初始化數據庫:[root@mufeng local]#?./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
h. 設置啟動文件:[root@mufeng local]#?cp -a ./support-files/my-default.cnf /etc/my.cnf
[root@mufeng local]#?cp -a ./support-files/mysql.server? /etc/init.d/mysqld
i. 啟動mysql: ? [root@mufeng mysql]# service mysqld start
Starting MySQL.? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? [? OK? ]
j. 設置開機啟動:[root@mufeng mysql]# chkconfig --level 35 mysqld on
k. 建立軟連接(可在任何目錄下訪問):[root@mufeng bin]# ln -s /usr/local/mysql/bin/mysql /usr/bin
l. 登錄mysql并設置密碼(首次無需密碼):[root@mufeng bin]# mysql -uroot -p
Enter password:
mysql> set password = password("root");
mysql>?flush privileges;? //刷新權限
m. 添加遠程連接的賬號、并設置權限:mysql> grant all privileges on *.* to 'zhanghao'@'%' identified by "password";
?mysql> flush privileges;
?mysql> select user, password, host from mysql.user; //查看是否添加成功
n. 本地連接測試:
[root@mufeng bin]# mysql -u zhanghao -p
Enter password:
ERROR 1045 (28000): Access denied for user 'mufeng'@'localhost' (using password: YES)
? 發現連接不上,但賬號密碼是正確的,原因:數據庫安裝初始化時,會創建匿名賬戶,在本地登錄時,會默認去匹配匿名賬戶,所以此時輸入密碼,連接時,報密碼錯誤,不輸入密碼,反而可以直接連接
解決方法:登錄root賬號,刪除匿名賬號:mysql> delete from mysql.user where user='';
更新新賬號的密碼: mysql> update mysql.user set password =PASSWORD('password') where user = 'zhanghao';
? ? 刷新權限: ? ?mysql> flush privileges;
再次連接(輸入密碼):成功
o. 遠程客戶端連接,顯示無法連接:
檢查端口是否開放:tcping ip 3306 結果:ping不通,解決方法:登錄服務器后臺,添加安全組入網規則,打開3306端口,再次連接,連接成功。
p. 當更改了配置文件后,需要重啟mysql時,有時會遇到這個問題:
解決方法:查看錯誤文件:[root@mufeng /]# vi /usr/local/mysql/data/mufeng.err
找到相應的錯誤記錄:我的是,2018-08-06 09:56:16 2573 [ERROR] /usr/local/mysql/bin/mysqld: unknown variable 'default-character-set=utf8'
然后,編輯配置文件:[root@mufeng /]# vi /etc/my.cnf
注釋掉,或改正,再次重啟即可:
?
?
數據表區分大小寫操作:在配置文件/etc/my.cnf中添加如下(也可參考:https://www.cnblogs.com/kevingrace/p/6150748.html)
#表名大小寫:0為大小寫敏感,1為不區分大小寫
lower_case_table_names=1
修改數據庫賬號名密碼:https://blog.csdn.net/u013510614/article/details/50506676 ? ? ? ?5.7版本:https://blog.csdn.net/qq_33472557/article/details/77726094
root賬號連接數據庫: mysql -u root -p
Enter password:***
更新密碼: UPDATE mysql.user SET password=PASSWORD("新密碼") WHERE user='你的用戶名';
版本高時,會報錯:ERROR 1054 (42S22): Unknown column 'password' in 'field list'
原因:版本不同,字段已經更改,使用:
? ??update mysql.user set authentication_string=password('新密碼') where user='你的用戶名'
刷新權限,否則不會生效:??FLUSH PRIVILEGES;
退出: quit
查看當前用戶名密碼等信息: select user, host, authentication_string from mysql.user;
安裝mysql參考文章:https://blog.csdn.net/u011270458/article/details/78539348;https://blog.csdn.net/ldy1016/article/details/49227247 2. 配置jdk: a. 下載相應版本的jdk包:https://www.oracle.com(這里是我的jdk1.8:鏈接: https://pan.baidu.com/s/1TpM4vzXNd9hGHI6Rw-84cw 密碼: iucs) b. 將壓縮包放在 /usr/local/java中,解壓:[root@mufeng /]#?tar -zxvf?jdk-8u161-linux-x64.tar.gz c. 配置環境變量:vim /etc/profile?? 添加如下: JAVA_HOME=/usr/java/jdk1.8.0_60CLASSPATH=$JAVA_HOME/lib/PATH=$PATH:$JAVA_HOME/binexport PATH JAVA_HOME CLASSPATH 注意jdk路徑,對應自己的路徑 重新加載配置文件:source /etc/profile d. 查看安裝情況: [root@mufeng /]# javac -version
javac 1.8.0_161
配置成功
配置jdk環境變量參考文章:https://www.cnblogs.com/shihaiming/p/5809553.html
3. 安裝nginx a. 下載相應版本的壓縮包:鏈接: https://pan.baidu.com/s/16yzxJqYv5qDtsHJh_lkEpQ 密碼: 47bi b. 將壓縮包放在 /usr/local/中,解壓:[root@mufeng /]#?tar -zxvf nginx-1.12.2.tar.gz c. 配置安裝nginx需要的環境: 安裝?nginx?的編譯環境 gcc:[root@mufeng /]#?yum install gcc-c++nginx的 http模塊使用?pcre?解析正則表達式,所以安裝?perl?兼容的正則表達式庫: ? ?[root@mufeng /]#?yum install -y pcre pcre-devel nginx?使用?zlib?對?http?包的內容進行?gzip: ?[root@mufeng /]# yum install -y zlib zlib-devel nginx?不僅支持?http?協議,還支持?https(即在?ssl?協議上傳輸?http),如果使用了?https?,需要安裝?OpenSSL?庫: ? ??[root@mufeng /]#?yum install -y openssl openssl-devel d. 配置(使用默認配置):[root@mufeng /]#?cd /usr/local/nginx-1.12.2 [root@mufeng /]#?./configure nginx?被安裝到?/usr/local/nginx?下 e. 編譯安裝:[root@mufeng /]#?make && make install f. 配置環境變量:[root@mufeng /]#?vim /etc/profile 在文件最后位置添加: export NGINX_HOME=/usr/local/nginxexport PATH=$PATH:$NGINX_HOME/sbin
重新編譯 /etc/profile 文件,使其生效:source /etc/profile
g.啟動nginx:nginx -c /usr/local/nginx/conf/nginx.conf查看nginx進程:[root@mufeng /]# ps -ef|grep nginx
成功
h.設置nginx開機啟動:[root@mufeng /]# vi /etc/rc.local
在文件最后位置添加:/usr/local/nginx/sbin/nginx
i.nginx其他命令: 重啟:nginx -s reload關閉:nginx -s stop
查看nginx配置文件的位置:nginx -t
安裝nginx參考文章:https://blog.csdn.net/qq_30038111/article/details/79410354 4. 搭建redis集群 cd /usr/local/redis_cluster a. 集群環境安裝: 安裝gcc,g++: ? ? ?[root@mufeng redis_cluster]#?yum install gcc g++ 安裝ruby腳本運行環境:? ??[root@mufeng redis_cluster]#?yum install ruby 安裝wget命令: ? ??[root@mufeng redis_cluster]#?yum install wget b.?安裝redis: 下載redis:?[root@mufeng redis_cluster]# wget http://download.redis.io/releases/redis-3.2.4.tar.gz 解壓:? ? ? ??[root@mufeng redis_cluster]#?tar -zxvf redis-3.2.4.tar.gz 編譯安裝到指定目錄:?[root@mufeng redis_cluster]# cd redis-3.2.4 [root@mufeng redis_cluster]#?make install PREFIX=/usr/local/redis_cluster/redis 測試,前端啟動模式:??[root@mufeng redis_cluster]#?/usr/local/redis_cluster/redis/bin/redis-server ctrl+c退出 c. 編輯配置文件,并啟動 從解壓后的redis源碼目錄中復制redis.conf到redis的安裝目錄:[root@mufeng redis_cluster]#?cp ./redis-3.2.4/redis.conf? /usr/local/redis_cluster/redis/bin 編輯剛復制到安裝目錄的配置文件redis.conf:[root@mufeng redis_cluster]#?vi ./redis/bin/redis.conf 把后臺運行開啟,把原來的NO改成yes:daemonize?yes (# 設置yes,redis可以后臺運行) bind 127.0.0.1 改為 bind 0.0.0.0 (# 0.0.0.0 代表外網能訪問) protected-mode yes 改為?protected-mode no (# 改為no,可以外界遠程訪問,redis 3.2 才追加的一個功能) (使用技巧:vim打開后,在非insert狀態下,輸入? /daemonize? 回車,便可找到daemonize位置,按n就查找下一個,按下 i鍵 進入編輯狀態,更改后,按下esc鍵,退出編輯狀態,按下shift+; 輸入:wq,保存退出) 使用配置文件,后臺啟動:[root@mufeng bin]#?./redis-server redis.conf 打開客戶端:[root@mufeng bin]# ./redis-cli 退出:quit d. 集群搭建準備: 創建6個redis實例: 持久化文件刪掉:[root@mufeng redis_cluster]#?cd redis/bin [root@mufeng bin]#?rm -f dump.rdb 創建多個實例:? ?[root@mufeng bin]#?cd .. //返回上一級目錄
[root@mufeng redis]#cp -r bin ../redis_cluster/6379
[root@mufeng redis]#cp -r bin ../redis_cluster/6380
......
[root@mufeng redis]#cp -r bin ../redis_cluster/6384
編輯各個實例下面的配置文件,修改兩處,第一修改端口號(port:6379,6380,...,6384),
第二打開cluster-enable前面的注釋 (# 開啟集群,把注釋#去掉)
復制腳本到redis-cluster目錄下:[root@mufeng redis]#?cp /usr/local/redis_cluster/redis-3.2.4/src/*.rb? /usr/local/redis_cluster/
創建redis集群啟動的腳本,來便捷的啟動6個實例:[root@mufeng redis_cluster]#?vim startall.sh
內容如下:
cd 6379 ./redis-server redis.conf cd .. cd 6380 ./redis-server redis.conf cd .. cd 6381 ./redis-server redis.conf cd .. cd 6382 ./redis-server redis.conf cd .. cd 6383 ./redis-server redis.conf cd .. cd 6384 ./redis-server redis.conf cd ..保存并退出 ?wq!;編輯腳本權限:[root@mufeng redis_cluster]#??chmod +x startall.sh
利用腳本啟動redis集群:[root@mufeng redis_cluster]#??./startall.sh
查看各個實例的運行狀態:ps aux|grep redis
e. 集群正式搭建:
安裝redis:[root@mufeng redis_cluster]#??gem install redis
可能:-bash: gem: command not found? ?則:安裝redis集群工具和環境
? ?則 [root@iZbp15h7x6vujtklreqtreZ redis_cluster]# yum install ruby && yum install -y rubygems
可能:ERROR:? Could not find a valid gem 'redis' (>= 0) in any repository? ? ?可參考:https://blog.csdn.net/snowhite91/article/details/78962436
則 [root@iZbp15h7x6vujtklreqtreZ redis_cluster]# wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
有一次安裝時,還出現了:While executing gem ... (Zlib::BufError)? ? ?buffer error 錯誤
沒有找到原因,但最后 把redis_cluster目錄下的 所有rm -rf redis-3.2.1.gem文件刪除后,此錯誤消失了
此時可能會報錯(我遇到了):Redisredis requires Ruby version >= 2.2.2
解決方法參考:https://blog.csdn.net/FengYe_YuLu/article/details/77628094? ??https://blog.csdn.net/zhaoyahui_666/article/details/78716511
開放端口:6379-6384,集群總線端口16379-16384
?創建集群(下邊的ip地址改為自己的公網ip,不要寫127.0.0.1,否則外部無法訪問):?
[root@mufeng redis_cluster]# ./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384運行上面命令后會出現,詢問:輸入 yes,即可
--replicas 1表示主從復制比例為 1:1,即一個主節點對應一個從節點;然后,默認給我們分配好了每個主節點和對應從節點服務,以及 solt 的大小,因為在 Redis 集群中有且僅有 16383 個 solt ,默認情況會給我們平均分配,當然你可以指定,后續的增減節點也可以重新分配。
f. 集群設置密碼,實現外部安全訪問
首先上一步的IP必須是公網的ip
更改各個實例的配置文件redis.conf,分別添加:requirepass? yourpassword
6個實例添加的要相同 刪除掉每個實例中的nodes.conf文件, 查看所有redis進程:[root@mufeng redis_cluster]# ps aux|grep redis kill掉這6個進程:kill -9 pid 然后重新啟動6個redis實例:[root@mufeng redis_cluster]# ./startall.sh 測試:不輸入密碼時,會提醒需要密碼,輸入密碼,再次測試,成功;
?
其他問題:有時需要重新搭建時,遇到此問題:[ERR] Node 39.108.145.103:6381 is not empty. Either the node already knows other nodes (check with C
解決方法:刪除掉節點下 aof、rdb結尾的文件,重新執行e中的創建集群命令即可
g. 連接測試??[root@mufeng 6379]#?./redis-cli -c -h?127.0.0.1 -p 6379 -a Passw0rd
只有加入 “-c” 才會啟動集群模式,不然會報錯:(error) MOVED 5798 39.108.145.103:6380
? 安裝也可參考:https://www.cnblogs.com/007sx/p/7158977.html
5. 由于服務器配置太低,現將redis集群改為reids單機版,以減少內存
具體參考:https://blog.csdn.net/makang456/article/details/54947193
6. 遇到的問題: 數據表區分大小寫:https://blog.csdn.net/wangshuai6707/article/details/52168467 登錄mysql時-bash: mysql: command not found:https://blog.csdn.net/TROY_Musou/article/details/80336059 搭建redis集群時:e中遇到的問題:https://blog.csdn.net/zhaoyahui_666/article/details/78716511 f中遇到的問題:https://blog.csdn.net/vtopqx/article/details/50235737? ?轉載于:https://www.cnblogs.com/mufengforward/p/9342354.html
總結
以上是生活随笔為你收集整理的个人网站搭建时linux中的相关配置记录(mysql,jdk,nginx,redis)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 陕西副市长猝死,其“豪宅”爆光震惊国人
- 下一篇: 2021 Domain Adaptati