公司给了我四台服务器,需要搭建的有前端,后端,以及两台数据库做主从复制。
一、搭建主从数据库:
准备mysql-5.7.27-linux-glibc2.12-x86_64.tar包,官网下载地址mysql安装包下载地址,选择社区版下载
下载之后上传至两台数据库xxxx.xx.xx.55,xxxx.xx.xx.56 ,我习惯将其解压至 /usr/local/mysql/
进入到该目录下 ,解压命令:
step.1
tar -xzvf mysql-5.7.27-linux-glibc2.12-x86_64.tar
step.2
#对其重命名
mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql-5.7.27
step.3
#添加用户组
groupadd mysql
#添加用户mysql 到用户组mysql
useradd -g mysql mysql
step.4
#在/usr/local/mysql/mysql-5.7.27/目录下新建data目录,方便存放数据库文件
mkdir data
step.5
#对其授权
chown -R mysql:mysql ./
#初始化数据库
./bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/mysql-5.7.27/ --datadir=/usr/local/mysql/mysql-5.7.27/data/
#将mysql/目录下除了data/目录的所有文件,改回root用户所有
chown -R root .
#mysql用户只需作为mysql-5.7.27/data/目录下所有文件的所有者
chown -R
#复制启动文件
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp /usr/local/mysql/mysql-5.7.27/bin/my_print_defaults /usr/bin/
step.6
#修改启动脚本
[root@instance_4dbde0 mysql-5.7.20]# vi /etc/init.d/mysqld
#修改项:
basedir=/usr/local/mysql/mysql-5.7.27/
datadir=/usr/local/mysql/mysql-5.7.27/data
port=3306
#启动服务
[root@instance_4dbde0 mysql-5.7.20]# service mysqld start
#加入环境变量,编辑 /etc/profile,这样可以在任何地方用mysql命令了
[root@instance_4dbde0 mysql-5.7.20]# vi /etc/profile
#添加mysql路径
export PATH=$PATH:/usr/local/mysql/mysql-5.7.27/bin
#刷新立即生效
[root@instance_4dbde0 mysql-5.7.20]# source /etc/profile
配置以上信息之后,基本就可以启动了mysql(如果不能启动,请看最后的配置文件),但是现在还缺少mysql的配置文件,即my.cnf文件(没有它Mysql也可以使用内置的默认参数启动),最后说
接下来就可以使用命令登录mysql了
数据库初始密码可以用命令查看:
cat /root/.mysql_secret
下面贴出我的my.cnf文件模板,可以按照如下配置:
[mysqld]
log-bin=master-bin
server-id=1
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8
mysql安装完 然后进行主从搭建:
55为主,56为从
进入mysql:
第一步:
在xxx.xx.xx.55中创建一个xxx.xx.xx.56主机中可以登录的MySQL用户
用户:mysql12
密码:mysql12
mysql>GRANT REPLICATION SLAVE ON *.* TO 'mysql12'@'xxx.xx.xx.55' IDENTIFIED BY 'mysql12';
mysql>FLUSH PRIVILEGES;
第二步:
查看xxx.xx.xx.55服务器二进制文件名与位置
mysql>SHOW MASTER STATUS;
第三步:
告知二进制文件名与位置
在xxx.xx.xx.56中执行:
mysql>CHANGE MASTER TO
>MASTER_HOST=’xxx.xx.xx.55’,
>MASTER_USER=’mysql12’,
>MASTER_PASSWORD=’mysql12’,
>MASTER_LOG_FILE=’mysql-bin.000048’,
>MASTER_LOG_POS=432;
#开启复制
mysql>START SLAVE;
#查看主从复制是否成功
mysql>SHOW SLAVE STATUS\G
完成主从配置。
二、搭建前端服务器
前端VUE 需要用到ngnix,首先安装配置ngnix 可以自己在官网下载 也可以直接到服务器上用命令下载:
1.#在自己的目录下,我这里是/usr/local/
wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
2.#安装gcc ,源码编译需要用到
yum install gcc-c++
3.#Nginx的Rewrite模块和HTTP核心模块会使用到PCRE正则表达式语法。这里需要安装两个安装包pcre和pcre-devel。第一个安装包提供编译版本的库,而第二个提供开发阶段的头文件和编译项目的源代码
yum install -y pcre pcre-devel
4.#zlib库提供了开发人员的压缩算法,在Nginx的各种模块中需要使用gzip压缩。安装指令如下:
yum install -y zlib zlib-devel
5.#nginx不仅支持 http协议,还支持 https(即在 ssl 协议上传输 http),如果使用了 https,需要安装 OpenSSL 库。安装指令如下:
yum install -y openssl openssl-devel
6.#将压缩包进行解压
tar -zxvf nginx-1.10.1.tar.gz
然后进入解压后的目录ngnix下,有个configure可执行文件,使用默认配置,回车即可:
./configure
最后进行编译和安装:
make (编译)
make install (安装)
遇到问题:make: *** No rule to make target build', needed by
default’. Stop.
解决办法:
安装下面配置
yum -y install make zlib-devel gcc-c++ libtool openssl openssl-devel
再重新执行make && make install 即可
然后你会发现多了一个ngnix文件夹,
进入此文件夹的sbin文件夹中,启动ngnix
./ngnix
#重启命令
./nginx -s reload
此外进入ngnix.cnf可以修改配置文件:
vim ngnix.cnf
我这里只修改了监听端口:80
以及location / {
root /usr/local/income; #这个路径下存放的是vue打包之后的文件(static文件夹以及index.html)
}
VUE打包之后会存放在dist目录下
#vue打包命令
npm run build
至此前端配置完成。
三、配置后端
后端需要一个consul注册中心和运行jar包,一个jre运行环境即可,配置一个java环境,将jdk的包上传至服务器,然后进行解压到/usr/local/目录下
在配置文件中加入环境变量,
vim /etc/profile
#随后在profile文件的末尾添加如下内容:
export JAVA_HOME=/usr/local/jdk1.8.0_161
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#注:export JAVA_HOME后接jdk1.8的安装路径。
下载consul的linux版本然后进行解压即可
#解压zip文件命令
unzip consul-xx.xx.01.zip
#运行命令(后台挂起并输出日志到consul.log文件下):
nohup ./consul agent -dev >>consul.log &
在/usr/local/下创建一个jar目录 存放后端的jar包,将springcloud需要运行的包上传至该目录下,进行运行:
nohup java -jar xxx.jar >>xxx.log &
至此项目搭建上线完毕。
遇到问题:
1.数据库需要关闭防火墙,以及授权使我们在外部使用Nivacat等工具能够连接,方便使用,需要进行如下命令:
#关闭防火墙(Centos7 关闭防火墙使用的命令)
systemctl stop firewalld (临时关闭)
systemctl disable firewalld (禁止开机启动)
#授权(进入数据库执行)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;
2.前后端启动之后无法连接数据库,是因为防火墙没有开发项目所用到的端口号,我项目中用到了8000,8001,8500,所有需要配置端口,如下命令:
cd /etc/firewireld/zones/
vim public.xml
修改配置后重启端口:
firewireld-cmd --reload