## 技术环境
- jdk8
- redis5.0以上
- mysql5.7以上
- 前端项目(vue+js+html+css+)
- nginx1.18
- centos7
创建/home/azhs/zips目录
```
mkdir /home/azh/zips
```
讲jdk的tar.gz包上传到该目录下
```
tar -zxvf jdk1.8xxx.tar.gz包
```
然后进入jdk目录 pwd获取该目录路径
```
pwd
```
然后修改 /etc/profile文件 配置环境变量 :wq!保存退出
```
#java environment
export JAVA_HOME=/usr/java/jdk1.8.0_144
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
java -version
```
通过yum 安装
```
yum install mariadb-server
```
安装完成后首先要把MariaDB服务开启,并设置为开机启动
```
systemctl start mariadb # 开启服务
systemctl enable mariadb # 设置为开机自启动服务
```
首次安装需要进行数据库的配置,命令都和mysql的一样
```
mysql_secure_installation
```
配置时出现的各个选项
```
Enter current password for root (enter for none): # 输入数据库超级管理员root的密码(注意不是系统root的密码),第一次进入还没有设置密码则直接回车
Set root password? [Y/n] # 设置密码,y
New password: # 新密码
Re-enter new password: # 再次输入密码
Remove anonymous users? [Y/n] # 移除匿名用户, y
Disallow root login remotely? [Y/n] # 拒绝root远程登录,n,不管y/n,都会拒绝root远程登录
Remove test database and access to it? [Y/n] # 删除test数据库,y:删除。n:不删除,数据库中会有一个test数据库,一般不需要
Reload privilege tables now? [Y/n] # 重新加载权限表,y。或者重启服务也许
```
测试是否能够登录成功,出现 MariaDB [(none)]> 就表示已经能够正常登录使用MariaDB数据库了
```
mysql -uroot -p
# 然后输入密码 登陆
```
###### 设置mariadb字符集为utf8
/etc/my.cnf 文件, 在 [mysqld] 标签下添加
```
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
```
/etc/my.cnf.d/client.cnf 文件, 在 [client] 标签下添加
```
default-character-set=utf8
```
/etc/my.cnf.d/mysql-clients.cnf 文件, 在 [mysql] 标签下添加
```
default-character-set=utf8
```
退出mysql 重启服务
```
systemctl restart mariadb
```
登陆进入数据库查看字符集
```
未配置字符集前
MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
配置字符集后
MariaDB [(none)]> show variables like "%character%";show variables like "%collation%";
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
+----------------------+-----------------+
| Variable_name | Value |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database | utf8_unicode_ci |
| collation_server | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
MariaDB [(none)]>
```
###### 设置远程连接mariadb数据库
mariadb默认是拒绝 root 远程登录的。这里用的是 datagrip 软件连接数据库
开放端口 3306
```
firewalld-cmd --permanent --zone=public --add-port=3306/tcp --permanent #开放端口
# 如果报错说明防火墙没开
systemctl status firewalld #查看防火墙状态
systemctl start firewalld #开启防火墙
systemctl stop firewalld #关闭防火墙
firewall-cmd --reload #重启防火墙让端口生效
firewall-cmd --zone=public --list-ports #查看开放的端口
```
先查看mysql数据库中的user表
```
MariaDB [(none)]> use mysql;
MariaDB [mysql]> select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| 127.0.0.1 | root |
| ::1 | root |
| mini | root |
+-----------+------+
3 rows in set (0.00 sec)
```
将与主机名相等的字段改为 "%" ,我的主机名为mini,
```
MariaDB [mysql]> update user set host='%' where host='mini';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
MariaDB [mysql]> select host, user from user;
+-----------+------+
| host | user |
+-----------+------+
| % | root |
| 127.0.0.1 | root |
| localhost | root |
+-----------+------+
3 rows in set (0.00 sec)
```
刷新权限表,或重启mariadb服务
```
MariaDB [mysql]> flush privileges;
[root@mini ~]# systemctl restart mariadb
```
然后远程连接成功!
我们通过docker安装
安装docker
```
yum install docker
```
拉取redis镜像
```
docker pull redis
```
开启端口,步骤楼上安装mariadb那儿有
启动容器
```
docker run -itd --name redis001 -p 6379:6379 redis
```
上传nginx.tar.gz包
然后解压缩 并安装依赖,
```
mkdir /home/azh/service
yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
cd /data/tmp
tar zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure --prefix=/home/azh/service/ngnix
make && make install
```
如果访问不成功就开启80端口 ,开启步骤和安装mariadb一样
#### 安装前端build环境node.js
上传node.tar.gz包 安装包都上传到/home/azh/zips目录
```
tar -zxvf node-v14.15.5-linux-x64.tar.gz
mv node-v14.15.5-linux-x64 /data/service
cd /data/service
ll
```
配置环境变量
```
vim /etc/profile
export NODEJS_HOME=/data/service/node-v14.15.5-linux-x64
export PATH=$PATH:$NODEJS_HOME/bin
#然后 :wq!保存退出 执行
source /etc/profile
node -v
```
设置npm镜像源
```
#设置淘宝镜像源
npm config set registry https://registry.npm.taobao.org
#升级npm
npm -g install npm
#查看npm配置
npm config list
```
安装yarn以及设置镜像源
```
#安装yarn
npm install -g yarn
#查看版本号
yarn -v
#设置淘宝镜像源
yarn config set registry https://registry.npm.taobao.org -g
yarn config set sass_binary_site http://cdn.npm.taobao.org/dist/node-sass -g
#查看yarn配置
yarn config list
```
#### 上传前端项目
将项目上传到/home/azh/service
然后进入项目执行
```
#下载依赖
yarn install
# 打包正式环境
yarn run build:prod
mkdir /home/azh/service/energy
mv dist/* /home/azh/service/energy
```
配置nginx配置文件
```
vim /data/service/ngnix/conf/nginx.conf
location / {
root /home/azh/service/energy;
try_files $uri $uri/ /index.html;
index index.html index.htm;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/;
}
```
然后进入/home/azh/service/ngnix
```
./nginx -s reload
```
然后可以 直接 http://ip:8080/ 访问了
其中的数据库sql脚本自行在安装好mariadb数据库后自行执行,这里解释一下mariadb就是mysql,两者没啥区别。
#### 对于sqlserver数据库迁移到mysql的相关操作
因为甲方用的就是sqlserver,这里就不介绍sqlserver的安装了
利用Navicat连接sqlserver
然后再用Navicat连接msyql
如图所示:

然后进入mariadb的用户目录下,右键新建数据库,字符集选择utf8


进入新建立的数据库 点击导入向导
然后选择ODBC

导入选择这个


进入后点击需要移植的sqlserver表

然后一直下一步下一步...



点击开始 sqlserver数据库表就移植到mysql或者mariadb了

结果:这是sqlserver的

这是mysql的

成功移植过来了