這里簡單說明一下在Windows系統下開發SpringCloud項目所需要的的基本環境,這里只說明開發過程中基礎必須的軟件,其他擴展功能(Docker,k8s,MinIO,XXL-JOB,EKL,Keepalived,Nginx,RabbitMQ,Kafka等)用到的軟件會在具體使用時詳細說明,本地開發的環境軟件以Windows版本的安裝配置為例,數據庫等中間件以Linux(CentOS7)的安裝配置為例,其他系統Mac/Linux可自行配置。
后端開發需要准備的環境及軟件有:JDK 1.8+,Maven 3.6.3+,Mysql 5.7.11+,Redis 5.0+,Nacos 1.4.0+,Sentinel 1.8.0+,IntelliJ IDEA 2020.2.1
前端開發需要准備的環境及軟件有:Node.js 15.9.0+,npm/cnpm/yarn,Visual Studio Code
* 實際上環境軟件可以使用Docker安裝,更加簡單方便,如果說自己為了更詳細地了解各項配置及安裝原理,還是通過軟件包一步步安裝配置(這里暫不深入討論數據庫、消息中間件等應不應該使用Docker安裝的問題),以下為詳細安裝操作步驟,不是小白請略過...*
后端開發所需環境及軟件安裝步驟:
一、安裝JDK
2019年4月16日,Oracle發布了Oracle JDK的8u211和8u 212兩個版本(屬於JDK8系列),並從這兩個版本開始將JDK的授權許可從BCL換成了OTN,也就是從這兩個版本開始商用收費。當然,個人開發和測試並不會收費,那么商用環境我們可以有兩個選擇: 下載之前的版本(2019年1月15日發布的Oracle JDK 8u201和8u202)進行使用或者選擇使用OpenJDK。目前我們一般的做法是在本地開發環境使用Oracle JDK ,在測試環境和正式環境中使用OpenJDK。為了保持使用的特性一致,需選擇合適的版本。
我們這里在開發過程中選擇使用Oracke JDK, Oracle JDK官網下載選擇頁面已標注好8u211后面的版本和8u202之前的版本方便下載,https://www.oracle.com/java/technologies/oracle-java-archive-downloads.html
- 選擇JDK免費版進行下載,根據自己合適的Windows系統版本下載,我這里選擇Windows x64版本,提前做好Oracke JDK網站的系統注冊和登錄,否則在下載過程中會提示登錄,選擇頁面:
- 雙擊下載的Oracle JDK進行安裝,根據提示一步步地點擊下一步即可:
- 配置環境變量:
在系統環境變量中添加JAVA_HOME和 CLASSPATH,並將JAVA的bin目錄加入到path中
- 驗證是否安裝配置成功:
運行 -> cmd命令窗口,在命令行中輸入:java -version,下面出現版本信息說明安裝配置成功。
二、安裝Maven
我們的SpringCloud項目使用Maven進行構建和依賴管理,Maven 的 Snapshot 版本與 Release 版本:1、Snapshot 版本代表不穩定、尚處於開發中的版本;2、Release 版本則代表穩定的版本。Gradle 作為構建工具最近幾年也比流行,和Maven比較各有優缺點吧,如果說哪一個比較好,這個仁者見仁智者見智,我們這里仍選擇Maven進行項目構建。
- 下載安裝:
Maven(http://maven.apache.org/download.cgi)需要JDK的支持,我們這里選擇最新的Manven版本3.6.3,需要JDK1.7以上的支持,JDK的安裝以及配置在上面我們已經完成。 下載Maven的zip包: apache-maven-3.6.3-bin.zip
- 配置環境:
在系統環境變量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加Maven的bin目錄: %MAVEN_HOME%\bin
- 驗證是否安裝配置成功:
運行 -> cmd命令窗口,在命令行中輸入:mvn -version ,如下圖所示,展示版本信息說明安裝配置成功。
- 注冊阿里雲私服並獲取私服倉庫地址:
我們可以選擇安裝Nexus作為Maven倉庫管理器,也可以使用阿里雲提供的Maven私服,配置方式都是一樣的,這里我們選擇使用阿里雲的Maven私服,如果是企業使用,這里建議申請私有倉庫:
5、配置Maven私服地址和本地倉庫路徑,請按下面的注釋進行替換為自己的私有倉庫信息。
<!--?xml version="1.0" encoding="UTF-8"?-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--請替換為自己本地的倉庫地址-->
<localrepository>D:\maven\repository</localrepository>
<mirrors>
<mirror>
<id>mirror</id>
<mirrorof>!rdc-releases,!rdc-snapshots</mirrorof>
<name>mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<servers>
<server>
<id>rdc-releases</id>
<username>用戶名/密碼請替換為自己阿里雲倉庫的</username>
<password>用戶名/密碼請替換為自己阿里雲倉庫的</password>
</server>
<server>
<id>rdc-snapshots</id>
<username>用戶名/密碼請替換為自己阿里雲倉庫的</username>
<password>用戶名/密碼請替換為自己阿里雲倉庫的</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>rdc-releases</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>rdc-snapshots</id>
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginrepositories>
<pluginrepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>snapshots</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>rdc-releases</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>rdc-snapshots</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginrepository>
</pluginrepositories>
</profile>
</profiles>
<activeprofiles>
<activeprofile>nexus</activeprofile>
</activeprofiles>
</settings>
三、安裝Mysql
這里介紹在CentOS7上通過安裝通用預編譯包方式安裝MySql數據庫:
- 增加用戶名和用戶組 :
#groupadd mysql
#useradd -r -g mysql mysql ---新建msyql 用戶禁止登錄shell
- 下載、解壓MySQL通用編譯包:
#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
#cd /usr/local/ ---切換到存放源碼包所在目錄(這里也是安裝目錄)
#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz ---在當前目錄解壓通用編譯包
#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立軟鏈接mysql 方便操作
- 設置權限並初始化MySQL系統授權表:
#cd mysql ---進入軟鏈接目錄
#mkdir /usr/local/mysql/data ---新建數據目錄
#chmod 770 /usr/local/mysql/data ---更改data目錄權限為770
#chown -R mysql. ---更改所有者,注意是mysql.
#chgrp -R mysql. ---更改所屬組,注意是mysql.
#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作時要加--user=mysql參數,生成一個隨機的密碼(保存登錄時使用)
#chown -R root. ---更改所有者,注意是root.
#chown -R mysql /usr/local/mysql/data ---更改data目錄所有者為mysql
- 創建配置文件並后台啟動MySQL
# mv/etc/my.cnf /etc/my.cnf.bak ---my.cnf 改名或刪除(默認的my.cnf 會影響mysql 啟動)
#cd /usr/local/mysql/support-files ---進入MySQL 安裝目錄支持文件目錄
#cp my-default.cnf/etc/my.cnf ---復制模板為新的配置文件,根據需要修改文件中配置選 項如不修改配置MySQL則按默認配置參數運行。
#/usr/local/mysql/bin/mysqld_safe --user=mysql & ---后台啟動mysql
- 配置MySQL自動啟動
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---復制啟動文件
#chmod 755 /etc/init.d/mysql ---增加執行權限
#chkconfig -add mysql ---加入自動啟動項
#chkconfig --level 345 mysql on ---設置MySQL 在345 等級自動啟動 ***把服務文件放到/etc/init.d/目錄下面相當於改為了rpm包安裝的服務使用方式。
- 配置MySQL系統環境變量
#vi /etc/profile ---編輯/etc/profile文件在最后添加如下兩行:
PATH=/usr/local/mysql/bin:$PATH
export PATH ---不加登錄mysql 時會報錯“-bash: mysql: command not found”
#source /etc/profile ---使環境變量及時生效
- 啟動MySQL服務
#/usr/local/mysql/support-files/mysql.server start ---啟動mysql服務
#/usr/local/mysql/support-files/mysql.server restart ---重啟mysql
#/usr/local/mysql/support-files/mysql.server stop ---停止mysql服務
也可以用service mysql start或systemctl start mysql這樣的rpm服務命令,還可以使用絕對路徑/etc/init.d/mysql start來啟動mysql,因為上面已經把啟動方式改為了rpm服務啟動方式。
- 訪問MySQL數據庫
#mysql -u root-p ---連接mysql,輸入初始化時生成的密碼
mysql> alter user 'root^'localhost' identified by '123456'; ---修改root 新密碼
mysql> quit; ---退出也可用exit;
# mysql -u root -p ---提示輸入密碼時輸入新設置的密碼登錄
mysql>use mysql; ---訪問數據庫mysql
mysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; ---創建可以遠程鏈接的用戶
- 創建SSL/RSA文件
#cd /usr/local/mysql/bin ---切換目錄
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---創建新的SSL文件
- MySQL默認區分大小寫,需要修改配置文件使其不區分大小寫
在/etc/my.cnf中的[mysqld]后加入下面一行,並重啟MySQL
lower_case_table_names=1
11、常見問題及解決方式:
a、登錄時報錯
#myslq -u root -p
報錯: ERROR 1045 (28000):
Access denied for user 'root'local host' (using password: NO)---(不輸入密碼時)ERROR 1045 (28000):
Access denied for user ,root,@,localhost, (using password: YES)---(輸入密碼時)
解決方式:
#/etc/init.d/mysql stop ---停止mysql 服務
#mysqld_safe -skip-grant-tables -skip-networking & ---跳過權限表控制,跳過TCP/IP 協議在本機訪問
#mysql -u root -p mysql ---提示輸入密碼時直接到 7 丨(
mysql>update user set authentication_string=password('123456,) where user='root'; --修改密碼,在 MySQL5.7.9中密碼字段名是authentication_string 而不是原來的password 了。
mysql> flush privileges; ---刷新MySQL的系統權限相關表使其生效
mysql> quit; ---退出mysql
#/etc/init.d/mysqld restart ---重啟mysql 服務
b、訪問數據庫時報錯
#myslq -u root -p ---提示輸入密碼時輸入新設置的密碼
mysql>use mysql;
報錯: ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
解決方式:
mysql>alteruseruser() identifiedby '123456'; ---再重新設置下密碼,注意方法與之前5.6版本的“SET PASSWORD = PASSWORD('new_password'}/MH
c、啟動MySQL服務報錯
#systemctl start mysql
報錯: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
解決方式:
初始化沒有指定路徑參數造成的加上參數即可
#cd /usr/local/mysql
#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data
d、使用druid作為數據庫連接池時,密碼加密(找到maven目錄下的druid包)
java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password
四、安裝Redis
下面是在CentOS7中安裝Redis的操作步驟,在命令行執行以下命令:
- 下載並解壓Redis安裝包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd /opt/software/
tar zxf redis-5.0.5.tar.gz -C /usr/local/src
- 編譯並安裝Redis
cd /usr/local/src/redis-5.0.5
make && make install
ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
- 修改Redis配置文件
vi /usr/local/redis/redis.conf
#修改內容如下:
daemonize yes #開啟后台運行
timeout 120 #超時時間
bind 0.0.0.0 #任何地址IP都可以登錄redis
requirepass 123456 #redis密碼123456
- 啟動Redis
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
- 測試安裝配置是否成功
redis-cli -h 127.0.0.1 -p 6379 -a 123456
127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"
常見問題:
redis不能遠程連接時,可能是防火牆的問題,關閉防火牆或者開放對應的redis端口即可
五、安裝Nacos
Nacos是一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平台,Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
- Nacos發布地址:https://github.com/alibaba/nacos/releases,從里面選擇需要的版本,這里選擇1.4.0版本,下載地址為:https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz。
- 下載完成后,上傳到測試Linux服務器解壓。(如果只想本地windows安裝,可以下載nacos-server-1.4.0.zip,解壓后使用方法基本一致)
[root@localhost soft_home]# cd nacos
[root@localhost nacos]# ls
nacos-server-1.4.0.tar.gz
[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gz
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost nacos]# ls
nacos nacos-server-1.4.0.tar.gz
[root@localhost nacos]# cd nacos
[root@localhost nacos]# ls
bin conf LICENSE NOTICE target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd shutdown.sh startup.cmd startup.sh
[root@localhost bin]# pwd
/usr/local/nacos/nacos/bin
[root@localhost bin]#
- 修改配置文件的數據庫連接,修改為自己實際的數據
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos
- 在數據庫中刷入/nacos/conf目錄下的nacos-mysql.sql數據庫腳本,如果需要其他配置或者了解使用方式可以訪問官網,官網地址:https://nacos.io/zh-cn/docs/quick-start.html。
- 進入到bin目錄下直接執行sh startup.sh -m standalone。
[root@localhost bin]# sh startup.sh -m standalone
/usr/java/jdk1.8.0_77/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out
6、服務啟動之后,可以訪問http://ip:8848/nacos訪問管理后台,默認用戶名密碼:nacos/nacos
六、安裝Sentinel
- 下載Sentinel發布版本,地址https://github.com/alibaba/Sentinel/releases
- 將下載的jar包sentinel-dashboard-1.8.0.jar上傳到CentOS7服務器,Sentinel 是一個標准的 Spring Boot 應用,以 Spring Boot 的方式運行 jar 包即可,執行啟動命令
nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &
3、在瀏覽器輸入測試的http://ip:8086 即可訪問登錄界面,默認用戶名密碼為sentinel/sentinel
4、至此,一個簡單的Sentinel就部署成功了,其他更詳細功能及使用方式請參考:https://github.com/alibaba/Sentinel/wiki/介紹
二、安裝Maven
我們的SpringCloud項目使用Maven進行構建和依賴管理,Maven 的 Snapshot 版本與 Release 版本:1、Snapshot 版本代表不穩定、尚處於開發中的版本;2、Release 版本則代表穩定的版本。Gradle 作為構建工具最近幾年也比流行,和Maven比較各有優缺點吧,如果說哪一個比較好,這個仁者見仁智者見智,我們這里仍選擇Maven進行項目構建。
- 下載安裝:
Maven(http://maven.apache.org/download.cgi)需要JDK的支持,我們這里選擇最新的Manven版本3.6.3,需要JDK1.7以上的支持,JDK的安裝以及配置在上面我們已經完成。 下載Maven的zip包: apache-maven-3.6.3-bin.zip
- 配置環境:
在系統環境變量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加Maven的bin目錄: %MAVEN_HOME%\bin
- 驗證是否安裝配置成功:
運行 -> cmd命令窗口,在命令行中輸入:mvn -version ,如下圖所示,展示版本信息說明安裝配置成功。
- 注冊阿里雲私服並獲取私服倉庫地址:
我們可以選擇安裝Nexus作為Maven倉庫管理器,也可以使用阿里雲提供的Maven私服,配置方式都是一樣的,這里我們選擇使用阿里雲的Maven私服,如果是企業使用,這里建議申請私有倉庫:
5、配置Maven私服地址和本地倉庫路徑,請按下面的注釋進行替換為自己的私有倉庫信息。
<!--?xml version="1.0" encoding="UTF-8"?-->
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--請替換為自己本地的倉庫地址-->
<localrepository>D:\maven\repository</localrepository>
<mirrors>
<mirror>
<id>mirror</id>
<mirrorof>!rdc-releases,!rdc-snapshots</mirrorof>
<name>mirror</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<servers>
<server>
<id>rdc-releases</id>
<username>用戶名/密碼請替換為自己阿里雲倉庫的</username>
<password>用戶名/密碼請替換為自己阿里雲倉庫的</password>
</server>
<server>
<id>rdc-snapshots</id>
<username>用戶名/密碼請替換為自己阿里雲倉庫的</username>
<password>用戶名/密碼請替換為自己阿里雲倉庫的</password>
</server>
</servers>
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>snapshots</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>rdc-releases</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>rdc-snapshots</id>
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginrepositories>
<pluginrepository>
<id>central</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>snapshots</id>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>rdc-releases</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginrepository>
<pluginrepository>
<id>rdc-snapshots</id>
<!--下面的url替換為自己的阿里雲私服地址-->
<url>替換為自己的阿里雲私服地址</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginrepository>
</pluginrepositories>
</profile>
</profiles>
<activeprofiles>
<activeprofile>nexus</activeprofile>
</activeprofiles>
</settings>
三、安裝Mysql
這里介紹在CentOS7上通過安裝通用預編譯包方式安裝MySql數據庫:
- 增加用戶名和用戶組 :
#groupadd mysql
#useradd -r -g mysql mysql ---新建msyql 用戶禁止登錄shell
- 下載、解壓MySQL通用編譯包:
#wget ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
#cd /usr/local/ ---切換到存放源碼包所在目錄(這里也是安裝目錄)
#tar -xvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz ---在當前目錄解壓通用編譯包
#ln -s /usr/local/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql ---建立軟鏈接mysql 方便操作
- 設置權限並初始化MySQL系統授權表:
#cd mysql ---進入軟鏈接目錄
#mkdir /usr/local/mysql/data ---新建數據目錄
#chmod 770 /usr/local/mysql/data ---更改data目錄權限為770
#chown -R mysql. ---更改所有者,注意是mysql.
#chgrp -R mysql. ---更改所屬組,注意是mysql.
#bin/mysqld —initialize -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---以root 初始化操作時要加--user=mysql參數,生成一個隨機的密碼(保存登錄時使用)
#chown -R root. ---更改所有者,注意是root.
#chown -R mysql /usr/local/mysql/data ---更改data目錄所有者為mysql
- 創建配置文件並后台啟動MySQL
# mv/etc/my.cnf /etc/my.cnf.bak ---my.cnf 改名或刪除(默認的my.cnf 會影響mysql 啟動)
#cd /usr/local/mysql/support-files ---進入MySQL 安裝目錄支持文件目錄
#cp my-default.cnf/etc/my.cnf ---復制模板為新的配置文件,根據需要修改文件中配置選 項如不修改配置MySQL則按默認配置參數運行。
#/usr/local/mysql/bin/mysqld_safe --user=mysql & ---后台啟動mysql
- 配置MySQL自動啟動
#cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql ---復制啟動文件
#chmod 755 /etc/init.d/mysql ---增加執行權限
#chkconfig -add mysql ---加入自動啟動項
#chkconfig --level 345 mysql on ---設置MySQL 在345 等級自動啟動 ***把服務文件放到/etc/init.d/目錄下面相當於改為了rpm包安裝的服務使用方式。
- 配置MySQL系統環境變量
#vi /etc/profile ---編輯/etc/profile文件在最后添加如下兩行:
PATH=/usr/local/mysql/bin:$PATH
export PATH ---不加登錄mysql 時會報錯“-bash: mysql: command not found”
#source /etc/profile ---使環境變量及時生效
- 啟動MySQL服務
#/usr/local/mysql/support-files/mysql.server start ---啟動mysql服務
#/usr/local/mysql/support-files/mysql.server restart ---重啟mysql
#/usr/local/mysql/support-files/mysql.server stop ---停止mysql服務
也可以用service mysql start或systemctl start mysql這樣的rpm服務命令,還可以使用絕對路徑/etc/init.d/mysql start來啟動mysql,因為上面已經把啟動方式改為了rpm服務啟動方式。
- 訪問MySQL數據庫
#mysql -u root-p ---連接mysql,輸入初始化時生成的密碼
mysql> alter user 'root^'localhost' identified by '123456'; ---修改root 新密碼
mysql> quit; ---退出也可用exit;
# mysql -u root -p ---提示輸入密碼時輸入新設置的密碼登錄
mysql>use mysql; ---訪問數據庫mysql
mysql>GRANT ALL ON *.* TO 'root'@'%' IDENTIFIED BY '密碼' WITH GRANT OPTION; ---創建可以遠程鏈接的用戶
- 創建SSL/RSA文件
#cd /usr/local/mysql/bin ---切換目錄
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---創建新的SSL文件
- MySQL默認區分大小寫,需要修改配置文件使其不區分大小寫
在/etc/my.cnf中的[mysqld]后加入下面一行,並重啟MySQL
lower_case_table_names=1
11、常見問題及解決方式:
a、登錄時報錯
#myslq -u root -p
報錯: ERROR 1045 (28000):
Access denied for user 'root'local host' (using password: NO)---(不輸入密碼時)ERROR 1045 (28000):
Access denied for user ,root,@,localhost, (using password: YES)---(輸入密碼時)
解決方式:
#/etc/init.d/mysql stop ---停止mysql 服務
#mysqld_safe -skip-grant-tables -skip-networking & ---跳過權限表控制,跳過TCP/IP 協議在本機訪問
#mysql -u root -p mysql ---提示輸入密碼時直接到 7 丨(
mysql>update user set authentication_string=password('123456,) where user='root'; --修改密碼,在 MySQL5.7.9中密碼字段名是authentication_string 而不是原來的password 了。
mysql> flush privileges; ---刷新MySQL的系統權限相關表使其生效
mysql> quit; ---退出mysql
#/etc/init.d/mysqld restart ---重啟mysql 服務
b、訪問數據庫時報錯
#myslq -u root -p ---提示輸入密碼時輸入新設置的密碼
mysql>use mysql;
報錯: ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
解決方式:
mysql>alteruseruser() identifiedby '123456'; ---再重新設置下密碼,注意方法與之前5.6版本的“SET PASSWORD = PASSWORD('new_password'}/MH
c、啟動MySQL服務報錯
#systemctl start mysql
報錯: Starting MySQL.. ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
解決方式:
初始化沒有指定路徑參數造成的加上參數即可
#cd /usr/local/mysql
#bin/mysqld -initialize-user=mysql -basedir=/usr/local/mysql -datadir=/usr/local/mysql/data
d、使用druid作為數據庫連接池時,密碼加密(找到maven目錄下的druid包)
java -cp druid-1.0.14.jar com.alibaba.druid.filter.config.ConfigTools you_password
四、安裝Redis
下面是在CentOS7中安裝Redis的操作步驟,在命令行執行以下命令:
- 下載並解壓Redis安裝包
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
cd /opt/software/
tar zxf redis-5.0.5.tar.gz -C /usr/local/src
- 編譯並安裝Redis
cd /usr/local/src/redis-5.0.5
make && make install
ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
- 修改Redis配置文件
vi /usr/local/redis/redis.conf
#修改內容如下:
daemonize yes #開啟后台運行
timeout 120 #超時時間
bind 0.0.0.0 #任何地址IP都可以登錄redis
requirepass 123456 #redis密碼123456
- 啟動Redis
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
- 測試安裝配置是否成功
redis-cli -h 127.0.0.1 -p 6379 -a 123456
127.0.0.1:6379> KEYS * (empty list or set)
127.0.0.1:6379> set user ray
OK
127.0.0.1:6379> KEYS *
1) "user"
常見問題:
redis不能遠程連接時,可能是防火牆的問題,關閉防火牆或者開放對應的redis端口即可
五、安裝Nacos
Nacos是一個更易於構建雲原生應用的動態服務發現、配置管理和服務管理平台,Nacos 致力於幫助您發現、配置和管理微服務。Nacos 提供了一組簡單易用的特性集,幫助您快速實現動態服務發現、服務配置、服務元數據及流量管理。
- Nacos發布地址:https://github.com/alibaba/nacos/releases,從里面選擇需要的版本,這里選擇1.4.0版本,下載地址為:https://github.com/alibaba/nacos/releases/download/1.4.0/nacos-server-1.4.0.tar.gz。
- 下載完成后,上傳到測試Linux服務器解壓。(如果只想本地windows安裝,可以下載nacos-server-1.4.0.zip,解壓后使用方法基本一致)
[root@localhost soft_home]# cd nacos
[root@localhost nacos]# ls
nacos-server-1.4.0.tar.gz
[root@localhost nacos]# tar -zxvf nacos-server-1.4.0.tar.gz
nacos/LICENSE
nacos/NOTICE
nacos/target/nacos-server.jar
nacos/conf/
nacos/conf/schema.sql
nacos/conf/nacos-mysql.sql
nacos/conf/application.properties.example
nacos/conf/nacos-logback.xml
nacos/conf/cluster.conf.example
nacos/conf/application.properties
nacos/bin/startup.sh
nacos/bin/startup.cmd
nacos/bin/shutdown.sh
nacos/bin/shutdown.cmd
[root@localhost nacos]# ls
nacos nacos-server-1.4.0.tar.gz
[root@localhost nacos]# cd nacos
[root@localhost nacos]# ls
bin conf LICENSE NOTICE target
[root@localhost nacos]# cd bin
[root@localhost bin]# ls
shutdown.cmd shutdown.sh startup.cmd startup.sh
[root@localhost bin]# pwd
/usr/local/nacos/nacos/bin
[root@localhost bin]#
- 修改配置文件的數據庫連接,修改為自己實際的數據
#*************** Config Module Related Configurations ***************#
### If use MySQL as datasource:
spring.datasource.platform=mysql
### Count of DB:
db.num=1
### Connect URL of DB:
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=nacos
db.password=nacos
- 在數據庫中刷入/nacos/conf目錄下的nacos-mysql.sql數據庫腳本,如果需要其他配置或者了解使用方式可以訪問官網,官網地址:https://nacos.io/zh-cn/docs/quick-start.html。
- 進入到bin目錄下直接執行sh startup.sh -m standalone。
[root@localhost bin]# sh startup.sh -m standalone
/usr/java/jdk1.8.0_77/bin/java -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/usr/local/nacos/nacos/logs/java_heapdump.hprof -XX:-UseLargePages -Dnacos.member.list= -Djava.ext.dirs=/usr/java/jdk1.8.0_77/jre/lib/ext:/usr/java/jdk1.8.0_77/lib/ext -Xloggc:/usr/local/nacos/nacos/logs/nacos_gc.log -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=100M -Dloader.path=/usr/local/nacos/nacos/plugins/health,/usr/local/nacos/nacos/plugins/cmdb -Dnacos.home=/usr/local/nacos/nacos -jar /usr/local/nacos/nacos/target/nacos-server.jar --spring.config.location=file:/usr/local/nacos/nacos/conf/,classpath:/,classpath:/config/,file:./,file:./config/ --logging.config=/usr/local/nacos/nacos/conf/nacos-logback.xml --server.max-http-header-size=524288
nacos is starting with cluster
nacos is starting,you can check the /usr/local/nacos/nacos/logs/start.out
6、服務啟動之后,可以訪問http://ip:8848/nacos訪問管理后台,默認用戶名密碼:nacos/nacos
六、安裝Sentinel
- 下載Sentinel發布版本,地址https://github.com/alibaba/Sentinel/releases
- 將下載的jar包sentinel-dashboard-1.8.0.jar上傳到CentOS7服務器,Sentinel 是一個標准的 Spring Boot 應用,以 Spring Boot 的方式運行 jar 包即可,執行啟動命令
nohup java -Dserver.port=8086 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.0.jar >/dev/null &
3、在瀏覽器輸入測試的http://ip:8086 即可訪問登錄界面,默認用戶名密碼為sentinel/sentinel
4、至此,一個簡單的Sentinel就部署成功了,其他更詳細功能及使用方式請參考:https://github.com/alibaba/Sentinel/wiki/介紹
七、安裝IntelliJ IDEA
后台Java代碼我們使用目前最流行的IntelliJ IDEA進行開發
-
下載需要的安裝包,IntelliJ IDEA下載,雙擊安裝,一直點擊下一步,盡量修改一下安裝目錄,不要安裝在C盤即可。
-
想辦法獲取到注冊碼
-
配置默認的Maven和JDK路徑
IDEA默認會讀取到系統配置的JDK環境變量,具體項目可通過File -> Project Structure進行配置。 -
通過插件中心,安裝Lombok,MybatisX, Save Actions, Eclipse Code Formatter插件,后面會詳細介紹幾款插件的用法:
前端開發所需環境及軟件安裝步驟:
一、安裝Node.js
如果是剛接觸Vue的話,建議學習一下vue-element-admin系列文章,介紹得很詳細,雖然ElementUI已經不更新了,但是這位前端大神寫的文檔比AntDesignVue文檔高好幾個層級,AntDesignVue適合掌握一定Vue能力的人去使用學習。
-
Node.js下載地址:https://nodejs.org/en/download/releases/
-
雙擊安裝包,一步步點擊下一步即可
-
檢查是否安裝成功
運行 -> cmd命令窗口 ,在命令行中輸入 node -v ,顯示node版本信息表示安裝成功
-
npm切換阿里源
命令行中執行如下命令
npm config set registry https://registry.npm.taobao.org/
- 安裝cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
- 安裝yarn
npm install -g yarn
yarn config set registry `https://registry.npm.taobao.org -g`
這里之所以cnpm和yarn都安裝,是因為其各有優缺點,在使用的時候選擇自己習慣的即可。
二、安裝VSCode
Visual Studio Code (簡稱 VSCode / VSC) 是一款免費開源的現代化輕量級代碼編輯器,支持幾乎所有主流的開發語言的語法高亮、智能代碼補全、自定義熱鍵、括號匹配、代碼片段、代碼對比 Diff、Git 等特性,支持插件擴展,並針對網頁開發和雲端應用開發做了優化。
- 下載合適的VSCode安裝包,下載地址
- 我們這里選擇的是.zip解壓版,下載解壓后就可使用。
- 安裝插件,打開VSCode,點擊左側下面的擴展按鈕,選擇需要的插件進行安裝
漢化插件: Chinese (Simplified) Language Pack for Visual Studio Code
代碼檢查/格式化工具: ESLint
Html/js/css進行格式化對齊顯示: Beautify
Vue開發工具 : Vetur - 配置ESLint自動檢測格式化前端代碼
在我們使用的前端框架中,已經生成eslint 相關的配置文件.eslintignore和.eslintrc.js,當我們編輯代碼保存時,ESlint插件會將我們的代碼自動按照配置好的格式進行格式化,這里介紹在VSCode中如何配置使用Eslint。
修改VSCode配置,文件->首選項->設置,在設置頁,點擊右上角第一個按鈕,打開setting.json,修改內容為:
{
//保存自動格式化
"editor.formatOnSave": true,
//autoFixedOnSave 設置已廢棄,采用如下新的設置
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
//.vue文件template格式化支持,並使用js-beautify-html插件
"vetur.format.defaultFormatter.html": "js-beautify-html",
// js-beautify-html格式化配置,屬性強制換行
"vetur.format.defaultFormatterOptions": {
"js-beautify-html": {
"wrap_attributes": "force-aligned"
}
},
//后面不添加逗號
"vetur.format.defaultFormatter.js": "vscode-typescript",
//方法后面加空格
"javascript.format.insertSpaceBeforeFunctionParenthesis": true,
"files.autoSave": "off",
"eslint.format.enable": true,
//autoFix默認開啟,只需輸入字符串數組即可
"eslint.validate": [
"javascript",
"javascriptreact",
"vue",
"html",
"vue-html"
],
"eslint.run": "onSave"
}
以上基本開發環境配置操作完成,接下來就可以進行編碼開發了。