这里简单说明一下在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

  1. 选择JDK免费版进行下载,根据自己合适的Windows系统版本下载,我这里选择Windows x64版本,提前做好Oracke JDK网站的系统注册和登录,否则在下载过程中会提示登录选择页面: 

  2. 双击下载的Oracle JDK进行安装,根据提示一步步地点击下一步即可:











  3. 配置环境变量:

    在系统环境变量中添加JAVA_HOME和 CLASSPATH,并将JAVA的bin目录加入到path中



  4. 验证是否安装配置成功:

    运行 -> cmd命令窗口,在命令行中输入:java -version,下面出现版本信息说明安装配置成功。

二、安装Maven

我们的SpringCloud项目使用Maven进行构建和依赖管理,Maven 的 Snapshot 版本与 Release 版本:1、Snapshot 版本代表不稳定、尚处于开发中的版本;2、Release 版本则代表稳定的版本。Gradle 作为构建工具最近几年也比流行,和Maven比较各有优缺点吧,如果说哪一个比较好,这个仁者见仁智者见智,我们这里仍选择Maven进行项目构建。

  1. 下载安装:

    Maven(http://maven.apache.org/download.cgi)需要JDK的支持,我们这里选择最新的Manven版本3.6.3,需要JDK1.7以上的支持,JDK的安装以及配置在上面我们已经完成。 下载Maven的zip包: apache-maven-3.6.3-bin.zip

  2. 配置环境:

    在系统环境变量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加Maven的bin目录: %MAVEN_HOME%\bin



  3. 验证是否安装配置成功:

    运行 -> cmd命令窗口,在命令行中输入:mvn -version ,如下图所示,展示版本信息说明安装配置成功。

  4. 注册阿里云私服并获取私服仓库地址:

    我们可以选择安装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数据库:

  1. 增加用户名和用户组 :
#groupadd mysql
#useradd -r -g mysql mysql ---新建msyql 用户禁止登录shell
  1. 下载、解压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 方便操作
  1. 设置权限并初始化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
  1. 创建配置文件并后台启动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
  1. 配置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包安装的服务使用方式。
  1. 配置MySQL系统环境变量
#vi /etc/profile  ---编辑/etc/profile文件在最后添加如下两行:
PATH=/usr/local/mysql/bin:$PATH
export PATH ---不加登录mysql 时会报错“-bash: mysql: command not found”
#source /etc/profile ---使环境变量及时生效
  1. 启动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服务启动方式。

  1. 访问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; ---创建可以远程链接的用户
  1. 创建SSL/RSA文件
#cd /usr/local/mysql/bin ---切换目录
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---创建新的SSL文件
  1. 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的操作步骤,在命令行执行以下命令:

  1. 下载并解压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
  1. 编译并安装Redis
cd /usr/local/src/redis-5.0.5

make && make install

ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
  1. 修改Redis配置文件
vi /usr/local/redis/redis.conf
#修改内容如下:
daemonize yes #开启后台运行
timeout 120 #超时时间
bind 0.0.0.0 #任何地址IP都可以登录redis
requirepass 123456 #redis密码123456
  1. 启动Redis
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
  1. 测试安装配置是否成功
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 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

  1. 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。

  2. 下载完成后,上传到测试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]#
  1. 修改配置文件的数据库连接,修改为自己实际的数据
#*************** 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
  1. 在数据库中刷入/nacos/conf目录下的nacos-mysql.sql数据库脚本,如果需要其他配置或者了解使用方式可以访问官网,官网地址:https://nacos.io/zh-cn/docs/quick-start.html。
  2. 进入到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

  1. 下载Sentinel发布版本,地址https://github.com/alibaba/Sentinel/releases
  2. 将下载的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进行项目构建。

  1. 下载安装:

    Maven(http://maven.apache.org/download.cgi)需要JDK的支持,我们这里选择最新的Manven版本3.6.3,需要JDK1.7以上的支持,JDK的安装以及配置在上面我们已经完成。 下载Maven的zip包: apache-maven-3.6.3-bin.zip

  2. 配置环境:

    在系统环境变量中添加 M2_HOME 和 MAVEN_HOME,最后在PATH中添加Maven的bin目录: %MAVEN_HOME%\bin



  3. 验证是否安装配置成功:

    运行 -> cmd命令窗口,在命令行中输入:mvn -version ,如下图所示,展示版本信息说明安装配置成功。

  4. 注册阿里云私服并获取私服仓库地址:

    我们可以选择安装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数据库:

  1. 增加用户名和用户组 :
#groupadd mysql
#useradd -r -g mysql mysql ---新建msyql 用户禁止登录shell
  1. 下载、解压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 方便操作
  1. 设置权限并初始化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
  1. 创建配置文件并后台启动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
  1. 配置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包安装的服务使用方式。
  1. 配置MySQL系统环境变量
#vi /etc/profile  ---编辑/etc/profile文件在最后添加如下两行:
PATH=/usr/local/mysql/bin:$PATH
export PATH ---不加登录mysql 时会报错“-bash: mysql: command not found”
#source /etc/profile ---使环境变量及时生效
  1. 启动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服务启动方式。

  1. 访问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; ---创建可以远程链接的用户
  1. 创建SSL/RSA文件
#cd /usr/local/mysql/bin ---切换目录
#mysql_ssl_rsa_setup -user=mysql -basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ---创建新的SSL文件
  1. 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的操作步骤,在命令行执行以下命令:

  1. 下载并解压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
  1. 编译并安装Redis
cd /usr/local/src/redis-5.0.5

make && make install

ln -s /usr/local/src/redis-5.0.5 /usr/local/redis
  1. 修改Redis配置文件
vi /usr/local/redis/redis.conf
#修改内容如下:
daemonize yes #开启后台运行
timeout 120 #超时时间
bind 0.0.0.0 #任何地址IP都可以登录redis
requirepass 123456 #redis密码123456
  1. 启动Redis
cd /usr/local/redis/src
./redis-server /usr/local/redis/redis.conf
  1. 测试安装配置是否成功
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 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。

  1. 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。

  2. 下载完成后,上传到测试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]#
  1. 修改配置文件的数据库连接,修改为自己实际的数据
#*************** 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
  1. 在数据库中刷入/nacos/conf目录下的nacos-mysql.sql数据库脚本,如果需要其他配置或者了解使用方式可以访问官网,官网地址:https://nacos.io/zh-cn/docs/quick-start.html。
  2. 进入到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

  1. 下载Sentinel发布版本,地址https://github.com/alibaba/Sentinel/releases
  2. 将下载的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进行开发

  1. 下载需要的安装包,IntelliJ IDEA下载,双击安装,一直点击下一步,尽量修改一下安装目录,不要安装在C盘即可。







  2. 想办法获取到注册码

  3. 配置默认的Maven和JDK路径





    IDEA默认会读取到系统配置的JDK环境变量,具体项目可通过File -> Project Structure进行配置。

  4. 通过插件中心,安装Lombok,MybatisX, Save Actions, Eclipse Code Formatter插件,后面会详细介绍几款插件的用法:

前端开发所需环境及软件安装步骤:

一、安装Node.js

    如果是刚接触Vue的话,建议学习一下vue-element-admin系列文章,介绍得很详细,虽然ElementUI已经不更新了,但是这位前端大神写的文档比AntDesignVue文档高好几个层级,AntDesignVue适合掌握一定Vue能力的人去使用学习。

  1. Node.js下载地址:https://nodejs.org/en/download/releases/



  2. 双击安装包,一步步点击下一步即可











  3. 检查是否安装成功

    运行 -> cmd命令窗口 ,在命令行中输入 node -v ,显示node版本信息表示安装成功

  4. npm切换阿里源

    命令行中执行如下命令

npm config set registry https://registry.npm.taobao.org/
  1. 安装cnpm
npm install -g cnpm --registry=https://registry.npm.taobao.org
  1. 安装yarn
npm install -g yarn
yarn config set registry&nbsp;`https://registry.npm.taobao.org -g`

这里之所以cnpm和yarn都安装,是因为其各有优缺点,在使用的时候选择自己习惯的即可。

二、安装VSCode

    Visual Studio Code (简称 VSCode / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、Git 等特性,支持插件扩展,并针对网页开发和云端应用开发做了优化。

  1. 下载合适的VSCode安装包,下载地址

  2. 我们这里选择的是.zip解压版,下载解压后就可使用。
  3. 安装插件,打开VSCode,点击左侧下面的扩展按钮,选择需要的插件进行安装

    汉化插件: Chinese (Simplified) Language Pack for Visual Studio Code

    代码检查/格式化工具: ESLint

    Html/js/css进行格式化对齐显示: Beautify

    Vue开发工具 : Vetur
  4. 配置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"
}

以上基本开发环境配置操作完成,接下来就可以进行编码开发了。

GitEgg-Cloud是一款基于SpringCloud整合搭建的企业级微服务应用开发框架,开源项目地址:

Gitee: https://gitee.com/wmz1930/GitEgg

GitHub: https://github.com/wmz1930/GitEgg

欢迎感兴趣的小伙伴Star支持一下。

SpringCloud微服务实战——搭建企业级开发框架(二):环境准备的更多相关文章

  1. SpringCloud微服务实战——搭建企业级开发框架(四十二):集成分布式任务调度平台XXL-JOB,实现定时任务功能

      定时任务几乎是每个业务系统必不可少的功能,计算到期时间.过期时间等,定时触发某项任务操作.在使用单体应用时,基本使用Spring提供的注解即可实现定时任务,而在使用微服务集群时,这种方式就要考虑添 ...

  2. SpringCloud微服务实战——搭建企业级开发框架(二十三):Gateway+OAuth2+JWT实现微服务统一认证授权

      OAuth2是一个关于授权的开放标准,核心思路是通过各类认证手段(具体什么手段OAuth2不关心)认证用户身份,并颁发token(令牌),使得第三方应用可以使用该token(令牌)在限定时间.限定 ...

  3. SpringCloud微服务实战——搭建企业级开发框架(四十五):【微服务监控告警实现方式二】使用Actuator(Micrometer)+Prometheus+Grafana实现完整的微服务监控

      无论是使用SpringBootAdmin还是使用Prometheus+Grafana都离不开SpringBoot提供的核心组件Actuator.提到Actuator,又不得不提Micrometer ...

  4. SpringCloud微服务实战——搭建企业级开发框架(二十一):基于RBAC模型的系统权限设计

    RBAC(基于角色的权限控制)模型的核心是在用户和权限之间引入了角色的概念.取消了用户和权限的直接关联,改为通过用户关联角色.角色关联权限的方法来间接地赋予用户权限,从而达到用户和权限解耦的目的. R ...

  5. SpringCloud微服务实战——搭建企业级开发框架(二十二):基于MybatisPlus插件TenantLineInnerInterceptor实现多租户功能

    多租户技术的基本概念:   多租户技术(英语:multi-tenancy technology)或称多重租赁技术,是一种软件架构技术,它是在探讨与实现如何于多用户的环境下共用相同的系统或程序组件,并且 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(二十四):集成行为验证码和图片验证码实现登录功能

    随着近几年技术的发展,人们对于系统安全性和用户体验的要求越来越高,大多数网站系统都逐渐采用行为验证码来代替图片验证码.GitEgg-Cloud集成了开源行为验证码组件和图片验证码,并在系统中添加可配置 ...

  7. SpringCloud微服务实战——搭建企业级开发框架(二十七):集成多数据源+Seata分布式事务+读写分离+分库分表

    读写分离:为了确保数据库产品的稳定性,很多数据库拥有双机热备功能.也就是,第一台数据库服务器,是对外提供增删改业务的生产服务器:第二台数据库服务器,主要进行读的操作. 目前有多种方式实现读写分离,一种 ...

  8. SpringCloud微服务实战——搭建企业级开发框架(三十二):代码生成器使用配置说明

    一.新建数据源配置 因考虑到多数据源问题,代码生成器作为一个通用的模块,后续可能会为其他工程生成代码,所以,这里不直接读取系统工程配置的数据源,而是让用户自己维护. 参数说明 数据源名称:用于查找区分 ...

  9. SpringCloud微服务实战——搭建企业级开发框架(十二):OpenFeign+Ribbon实现负载均衡

      Ribbon是Netflix下的负载均衡项目,它主要实现中间层应用程序的负载均衡.为Ribbon配置服务提供者地址列表后,Ribbon就会基于某种负载均衡算法,自动帮助服务调用者去请求.Ribbo ...

随机推荐

  1. thrift的介绍及其使用

    什么是thrift Thrift是Facebook于2007年开发的跨语言的rpc服框架,提供多语言的编译功能,并提供多种服务器工作模式:用户通过Thrift的IDL(接口定义语言)来描述接口函数及数 ...

  2. K8S日常运维中关于“ImagePullBackOff”报错的处理思路分析

    故障案例: 发现故障:kubectl get pod -n kube-system -owide|grep -v "Running"NAME READY STATUS RESTAR ...

  3. redis跨实例迁移 & redis上云

    1)redis跨实例迁移--源实例db11迁移至目标实例db30 root@fe2e836e4470:/data# redis-cli -a pwd1 -n 11 keys \* |while rea ...

  4. Typora + PicGo做个人知识库

    最近在做个人知识库,考察了一圈各种平台和工具,发现还是直接用文件系统管理Markdown文件更符合我当前的需求.以Markdown文件作为文字载体,以文件目录作为分类结构,承载以计算机知识为主的学习笔 ...

  5. 小白也能看懂的dubbo3应用级服务发现详解

    搜索关注微信公众号"捉虫大师",后端技术分享,架构设计.性能优化.源码阅读.问题排查.踩坑实践. 本文已收录 https://github.com/lkxiaolou/lkxiao ...

  6. Java实现发送邮件,图片,附件

    参照地址 1.JavaMail 介绍 JavaMail 是sun公司(现以被甲骨文收购)为方便Java开发人员在应用程序中实现邮件发送和接收功能而提供的一套标准开发包,它支持一些常用的邮件协议,如前面 ...

  7. 尚硅谷Java高级笔记

    尚硅谷Java高级笔记 idea的使用: 一些小区别: 其他细节参考idea配置pdf 多线程: 基本概念: 多线程的优点: 何时需要多线程: 线程的创建和使用: 创建多线程的第一种方式: /** * ...

  8. 【Nginx】Linux常用命令------启动、停止、重启

    启动 启动代码格式:nginx安装目录地址 -c nginx配置文件地址 例如: [root@LinuxServer sbin]# /usr/local/nginx/sbin/nginx -c /us ...

  9. CodeForce-762B USB vs. PS/2(贪心)

    USB vs. PS/2 CodeForces - 762B 题意:有三种电脑,分别有a.b.c个,第一种只有USB接口,第二种只有PS/2接口,第三种有两种接口,有m个鼠标,告诉你价钱和接口类型,问 ...

  10. PHP中操作任意精度大小的GMP扩展学习

    对于各类开发语言来说,整数都有一个最大的位数,如果超过位数就无法显示或者操作了.其实,这也是一种精度越界之后产生的精度丢失问题.在我们的 PHP 代码中,最大的整数非常大,我们可以通过 PHP_INT ...