第三章 Mccann-DBH生产环境部署

一、系统优化

# 编写系统优化脚本
[ec2-user@172-31-10-33 ~]$ sudo su -
[root@172-31-10-33 ~]$ vi linux_opt.sh
#!/usr/bin/bash
# Author:jh
# Time:2020-12-11  09:03:19
# Name:linux_opt.sh
# Version: 1.0
# Discription: To  

local_IP=`ifconfig |awk -F ' ' 'NR==2{print $2}'`
local_hostname=`hostname`
base_yum="CentOS-Base.repo"
epel_yum="epel.repo"
yum_dir="/etc/yum.repos.d/"
cron_dir="/var/spool/cron/root"
ssh_dir="/etc/ssh/sshd_config"

linux_comm_software=(net-tools vim tree htop iftop gcc gcc-c++ glibc iotop lrzsz sl wget unzip telnet nmap nc psmisc dos2unix bash-completion bash-completion-extra sysstat rsync nfs-utils httpd-tools expect ntpdate)

#1.修改主机名
source /etc/init.d/functions
if [ $# -ne 1 ];then
    echo "/bin/sh $0 New hostname"
    exit 1
fi

hostnamectl set-hostname $1
if [ $? -eq 0 ];then
    action "hostname update is" /usr/bin/true
else
    action "hostname update is" /usr/bin/false
fi

#2.配置ssh连接成功显示
platform=`uname -i`
if [ $platform != "x86_64" ];then 
    echo "this script is only for 64bit Operating System !"
    exit 1
fi
echo "the platform is ok"
cat << EOF
+---------------------------------------+
| your system is CentOS 7 x86_64 |
| start optimizing....... |
+---------------------------------------
EOF

#3.配置yum仓库
mv $yum_dir$base_yum  $yum_dir${base_yum}.bak
mv $yum_dir$epel_yum  $yum_dir${epel_yum}.bak
curl -o $yum_dir$base_yum http://mirrors.aliyun.com/repo/Centos-7.repo
curl -o $yum_dir$epel_yum http://mirrors.aliyun.com/repo/epel-7.repo
yum clean all
yum makecache

#4.安装基础软件包
for i in ${linux_comm_software[*]}
do
    rpm -q $i &>/dev/null
    if [ $? -eq 0 ];then
        echo "$i is installed" 
    else
        yum -y install $i  &>/dev/null                                     
        action "$i is installing"  /usr/bin/true
    fi     
done

#5.关闭防火墙firewalld
#systemctl disable firewalld
#systemctl stop firewalld

#6.关闭selinux
#sed 's#SELINUX=enforcing#SELINUX=disabled#g' /etc/selinux/config

#7.修改本地解析
echo "$local_IP $local_hostname" >> /etc/hosts

#8.设置时间同步
timedatectl set-timezone Asia/Shanghai
/usr/sbin/ntpdate time1.aliyun.com
echo '#Timing synchronization time' >> $cron_dir
echo "* 4 * * * /usr/sbin/ntpdate time1.aliyun.com > /dev/null 2>&1" >> $cron_dir
systemctl restart crond.service

#9.ssh参数优化
#sed -i 's/^GSSAPIAuthentication yes$/GSSAPIAuthentication no/g' $ssh_dir
#sed -i 's/#UseDNS yes/UseDNS no/g' $ssh_dir
#sed -i 's/PermitRootLogin yes/PermitRootLogin no/g' $ssh_dir
#sed -i 's/#port 22/poort 520/g' $ssh_dir

#10.加大文件描述符
tail -1 /etc/security/limits.conf &>/dev/null
[ $? -eq 0 ] && echo "文件描述符以加大" || echo '*               -       nofile          65535 ' >>/etc/security/limits.conf 

#11.环境变量及别名优化
cat>>/etc/profile.d/color.sh<<EOF
alias ll='ls -l --color=auto --time-style=long-iso'
PS1="[e[37;40m][[e[32;1m]u[e[37;40m]@h [e[36;40m]w[e[0m]][e[32;1m]\$ [e[0m]"
export HISTTIMEFORMAT='%F-%T '
EOF

source  /etc/profile

#12.内核优化
cat >>/etc/sysctl.conf<<EOF
net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 4000    65000
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_max_tw_buckets = 36000
net.ipv4.route.gc_timeout = 100
net.ipv4.tcp_syn_retries = 1
net.ipv4.tcp_synack_retries = 1
net.core.somaxconn = 16384
net.core.netdev_max_backlog = 16384
net.ipv4.tcp_max_orphans = 16384
net.ipv4.ip_forward = 1
net.ipv4.icmp_echo_ignore_all=1
EOF

sysctl  -p

#13.关闭NetworkManager
#systemctl  stop  NetworkManager
#systemctl  disable  NetworkManager

#14.更新软件
yum -y update && > /dev/null

#15.设置中文字符集
localectl set-locale LANG=zh_CN.UTF-8

#16.备份显示系统版本和内核的文件
cp /etc/issue{,.bak}
cp /etc/issue.net{,.bak}

> /etc/issue
> /etc/issue.net

#17.优化完成    
cat << EOF
+-------------------------------------------------+
| 优 化 已 完 成                                  |
| 请 重启 这台服务器 !                            |
+-------------------------------------------------+
EOF

sleep 5

# 添加执行权限
[root@172-31-10-33 ~]$ chmod +x linux_opt.sh

# 执行脚本
[root@172-31-10-33 ~]$ sh linux_opt.sh mccann-dbh


[root@mccann-dbh ~]$

二、JDK安装

JDK官网下载:https://www.oracle.com

1.创建软件存放目录

[root@mccann-dbh  ~]# mkdir /data/software/
[root@mccann-dbh  ~]# cd /data/software/

2.上传JDK安装包

[root@mccann-dbh  /data/software]# rz
[root@mccann-dbh  /data/software]# ll
total 206884
-rw-r--r--. 1 root root 185540433 2021-07-12 09:42 jdk-8u131-linux-x64.tar.gz

3.解压安装包

[root@mccann-dbh  /data/software]# tar xf jdk-8u131-linux-x64.tar.gz  -C /opt
[root@mccann-dbh  /data/software]# cd /opt/
[root@hadooop100 ~]# ll
total 0
drwxr-xr-x. 8   10  143 255 2021-03-15 16:35 jdk1.8.0_131

4.做软连接

[root@hadooop100 ~]# ln -s jdk1.8.0_131 jdk
[root@hadooop100 ~]# ll
total 0
lrwxrwxrwx. 1 root root  12 2021-07-12 09:43 jdk -> jdk1.8.0_131
drwxr-xr-x. 8   10  143 255 2021-03-15 16:35 jdk1.8.0_131

5.配置环境变量

[root@hadooop100 ~]# vim /etc/profile.d/java.sh 
export JAVA_HOME=/opt/jdk
export PATH=$PATH:$JAVA_HOME/bin  

6.刷新环境变量

[root@hadooop100 ~]# source /etc/profile.d/java.sh 

7.验证JDK

[root@mccann-dbh  /opt]# java -versionjava version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

三、Mysql-8.0.24安装

1.安装依赖

# MySQL依赖于libaio库
[root@mccann-dbh ~]$ yum search libaio
[root@mccann-dbh ~]$ yum install libaio -y

2.下载Mysql新版本

[root@mccann-dbh ~]$ cd /data/software
[root@mccann-dbh /data/software]$ wget https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz

3.新建用户和用户组

# 不指定用户组时,默认生成一个同名用户组并加入 -r,指定为系统用户 -s,指定登录shell
[root@mccann-dbh /data/software]$ groupadd mysql
[root@mccann-dbh /data/software]$ useradd -r -g mysql -s /bin/false mysql

4.解压Mysql安装包

[root@mccann-dbh /usr/local]$ mv mysql-8.0.24-linux-glibc2.12-x86_64  mysql# 解压安装包到/usr/local目录下
[root@mccann-dbh /data/software]$ tar -xvf mysql-8.0.24-linux-glibc2.12-x86_64.tar.xz  -C /usr/local

# 进入/usr/local目录
[root@mccann-dbh /data/software]$ cd /usr/local/

# 查看安装包
[root@mccann-dbh /usr/local]$ ll
总用量 8
drwxr-xr-x. 9 root root 129 2021-09-02 17:04 mysql-8.0.24-linux-glibc2.12-x86_64

# 重命名
[root@mccann-dbh /usr/local]$ mv mysql-8.0.24-linux-glibc2.12-x86_64  mysql

5.新建Mysql存放目录

# Mysql配置文件目录[root@mccann-dbh /usr/local]$ mkdir /usr/local/mysql/etc -p# Mysql数据目录[root@mccann-dbh /usr/local]$ mkdir /usr/local/mysql/data -pps:数据目录不需要建立,配置文件指定时会自动创建数据目录。# Mysql日志目录[root@mccann-dbh /usr/local]$ mkdir /usr/local/mysql/log -p# 授权目录用户[root@mccann-dbh /usr/local]$ chown -R mysql:mysql /usr/local/mysql

6.配置mysql配置文件

[root@mccann-dbh /usr/local]$ cd /usr/local/mysql/etc/

[root@mccann-dbh /usr/local/mysql/etc]$ vim my.cnf
[client]
port    = 3306
socket = /usr/local/mysql/data/mysql.sock

[mysql]
prompt="u@h R:m:s [d]> "
no-auto-rehash

[mysqld]
user    = mysql
port    = 3306
admin_address = 127.0.0.1
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket    = /usr/local/mysql/data/mysql.sock
pid-file = /usr/local/mysql/data/mysqld.pid
character-set-server = utf8mb4
skip_name_resolve = 1
#这个就是用之前的身份认证插件
default-authentication-plugin = mysql_native_password
#保证日志的时间正确
log_timestamps = SYSTEM

#replicate-wild-ignore-table=mysql.%
replicate-wild-ignore-table=test.%
replicate-wild-ignore-table=information_schema.%

# Two-Master configure
#server-1
#auto-increment-offset = 1
#auto-increment-increment = 2

#server-2
#auto-increment-offset = 2
#auto-increment-increment = 2

sql_mode=NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

# semi sync replication settings #
#plugin_dir = /usr/local/mysql/lib/mysql/plugin
#plugin_load = "validate_password.so;rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
plugin_dir =/usr/local/mysql/lib/plugin #官方版本的路径
plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so" #官方版本的路径

slave_parallel_workers = 4
slave_parallel_type = LOGICAL_CLOCK

open_files_limit    = 65535
back_log = 1024
max_connections = 1024
max_connect_errors = 1000000
table_open_cache = 1024
table_definition_cache = 1024
table_open_cache_instances = 64
thread_stack = 512K
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 4M
join_buffer_size = 4M
thread_cache_size = 1536
interactive_timeout = 600
wait_timeout = 600
tmp_table_size = 32M
max_heap_table_size = 32M
slow_query_log = 1
log_timestamps = SYSTEM
slow_query_log_file = /usr/local/mysql/log/slow.log
log-error = /usr/local/mysql/log/error.log
long_query_time = 0.1
log_queries_not_using_indexes =1
log_throttle_queries_not_using_indexes = 60
min_examined_row_limit = 100
log_slow_admin_statements = 1
log_slow_slave_statements = 1
server-id = 3306
log-bin = mysql-bin
sync_binlog = 1
binlog_cache_size = 4M
max_binlog_cache_size = 2G
max_binlog_size = 1G
binlog_expire_logs_seconds=2592000
master_info_repository = TABLE
relay_log_info_repository = TABLE
gtid_mode = on
enforce_gtid_consistency = 1
log_slave_updates
slave-rows-search-algorithms = 'INDEX_SCAN,HASH_SCAN'
binlog_format = row
binlog_row_image=FULL
binlog_checksum = 1
relay_log_recovery = 1
relay-log-purge = 1
key_buffer_size = 32M
read_buffer_size = 8M
read_rnd_buffer_size = 4M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
lock_wait_timeout = 3600
explicit_defaults_for_timestamp = 1
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 100
innodb_spin_wait_delay = 30

#transaction_isolation = REPEATABLE-READ
transaction_isolation = READ-COMMITTED
#innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 2867M
innodb_buffer_pool_instances = 4
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_data_file_path = ibdata1:1G:autoextend
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 32M
innodb_log_file_size = 2G
innodb_log_files_in_group = 3
innodb_max_undo_log_size = 4G
# innodb_undo_directory = /usr/local/mysql/log/undolog
innodb_undo_tablespaces = 95

# 根据您的服务器IOPS能力适当调整
# 一般配普通SSD盘的话,可以调整到 10000 - 20000
# 配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000
innodb_io_capacity = 4000
innodb_io_capacity_max = 8000
innodb_flush_sync = 0
innodb_flush_neighbors = 0
innodb_write_io_threads = 8
innodb_read_io_threads = 8
innodb_purge_threads = 4
innodb_page_cleaners = 4
innodb_open_files = 65535
innodb_max_dirty_pages_pct = 50
innodb_flush_method = O_DIRECT
innodb_lru_scan_depth = 4000
innodb_checksum_algorithm = crc32
innodb_lock_wait_timeout = 10
innodb_rollback_on_timeout = 1
innodb_print_all_deadlocks = 1
innodb_file_per_table = 1
innodb_online_alter_log_max_size = 4G
innodb_stats_on_metadata = 0

# some var for MySQL 8
log_error_verbosity = 3
innodb_print_ddl_logs = 1
binlog_expire_logs_seconds = 2592000
#innodb_dedicated_server = 0

innodb_status_file = 1
# 注意: 开启 innodb_status_output & innodb_status_output_locks 后, 可能会导致log-error文件增长较快
innodb_status_output = 0
innodb_status_output_locks = 0

#performance_schema
performance_schema = 1
performance_schema_instrument = '%memory%=on'
performance_schema_instrument = '%lock%=on'

#innodb monitor
innodb_monitor_enable="module_innodb"
innodb_monitor_enable="module_server"
innodb_monitor_enable="module_dml"
innodb_monitor_enable="module_ddl"
innodb_monitor_enable="module_trx"
innodb_monitor_enable="module_os"
innodb_monitor_enable="module_purge"
innodb_monitor_enable="module_log"
innodb_monitor_enable="module_lock"
innodb_monitor_enable="module_buffer"
innodb_monitor_enable="module_index"
innodb_monitor_enable="module_ibuf_system"
innodb_monitor_enable="module_buffer_page"
innodb_monitor_enable="module_adaptive_hash"
#validate_password_policy=LOW

[mysqldump]
quick
max_allowed_packet = 32M

[mysqld_safe]
#malloc-lib=/usr/local/mysql/lib/jmalloc.so
nice=-19
open-files-limit=65535

7.初始化数据库

[root@mccann-dbh /usr/local/mysql/etc]$ cd /usr/local/mysql/bin/
[root@mccann-dbh /usr/local/mysql/bin]$ ./mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

8.启动数据库

#1.配置system启动
[root@mccann-dbh /usr/local/mysql/bin]$ vim /usr/lib/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false

#2.重新加载启动文件列表
[root@dxg-ml bin]# systemctl daemon-reload

#3.启动数据库
[root@mccann-dbh /usr/local/mysql/bin]$ systemctl start mysqld.service 

#4.查看数据库状态
[root@mccann-dbh /usr/local/mysql/bin]$ systemctl status mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-02 17:31:43 CST; 23s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 18405 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ├─18405 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf
           └─20037 /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/lo...

Sep 02 17:31:43 mccann-dbh systemd[1]: Started MySQL Server.
Sep 02 17:31:43 mccann-dbh mysqld_safe[18405]: 2021-09-02T09:31:43.946861Z mysqld_safe Logging to '/usr/local/mysql/log/error.log'.
Sep 02 17:31:43 mccann-dbh mysqld_safe[18405]: 2021-09-02T09:31:43.970580Z mysqld_safe Starting mysqld daemon with databases fro...ql/data
Hint: Some lines were ellipsized, use -l to show in full.

#5.验证服务状态
[root@mccann-dbh /usr/local/mysql/bin]$ ps -ef |grep 3306
mysql    20037 18405  0 17:31 ?        00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --log-error=/usr/local/mysql/log/error.log --open-files-limit=65535 --pid-file=/usr/local/mysql/data/mysqld.pid --socket=/usr/local/mysql/data/mysql.sock --port=3306
root     20109 17631  0 17:34 pts/2    00:00:00 grep --color=auto 3306

[root@mccann-dbh /usr/local/mysql/bin]$ netstat  -lntp |grep 3306
tcp        0      0 127.0.0.1:33062         0.0.0.0:*               LISTEN      20037/mysqld        
tcp6       0      0 :::33060                :::*                    LISTEN      20037/mysqld        
tcp6       0      0 :::3306                 :::*                    LISTEN      20037/mysqld   

9.配置环境变量

#配置环境变量
[root@mccann-dbh /usr/local/mysql/bin]$ cat /etc/profile.d/mysqld.sh 
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

#重载环境变量
[root@mccann-dbh /usr/local/mysql/bin]$ source  /etc/profile

10.登录数据库

#1.登录并配置远程登录
[root@mccann-dbh ~]$ mysql -P 3306 -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 10
Server version: 8.0.24

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

root@localhost 17:39:  [(none)]> 

#2.查看数据库提示你必须重置你的密码
root@localhost 17:39:  [(none)]> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

#3.修改数据库密码
root@localhost 17:44:  [(none)]> ALTER USER 'root'@'localhost' IDENTIFIED BY '**********';
Query OK, 0 rows affected (0.00 sec)

#4.再次查看数据库
root@localhost 17:45:  [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

#5.使用数据库
root@localhost 17:46:  [(none)]> use mysql;
Database changed

#6.创建一个远程用户登录
root@localhost 17:46:  [mysql]> create user 'root'@'%' identified by '*********';
Query OK, 0 rows affected (0.01 sec)

root@localhost 17:47:  [mysql]>  grant all privileges on *.* to 'root'@'%' with grant option;
Query OK, 0 rows affected (0.00 sec)

root@localhost 17:47:  [mysql]> select host, user, authentication_string, plugin from user;
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| host      | user             | authentication_string                                                  | plugin                |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
| %         | root             | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B                              | mysql_native_password |
| localhost | mysql.infoschema | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.session    | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | mysql.sys        | $A$005$THISISACOMBINATIONOFINVALIDSALTANDPASSWORDTHATMUSTNEVERBRBEUSED | caching_sha2_password |
| localhost | root             | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B                              | mysql_native_password |
+-----------+------------------+------------------------------------------------------------------------+-----------------------+
5 rows in set (0.00 sec)

#退出数据库
root@localhost 17:47:  [mysql]> quit
Bye

四、迁移数据库目录

1.停止数据库

#1.停止数据库
[root@mccann-dbh ~]$ systemctl stop  mysqld.service 

#2.查看数据库状态
[root@mccann-dbh ~]$ systemctl status  mysqld.service 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html

Sep 02 17:31:43 mccann-dbh systemd[1]: Started MySQL Server.
Sep 02 17:31:43 mccann-dbh mysqld_safe[18405]: 2021-09-02T09:31:43.946861Z mysqld_safe Logging to '/usr/local/mysql/log/error.log'.
Sep 02 17:31:43 mccann-dbh mysqld_safe[18405]: 2021-09-02T09:31:43.970580Z mysqld_safe Starting mysqld daemon with databases fro...ql/data
Sep 02 17:50:41 mccann-dbh systemd[1]: Stopping MySQL Server...
Sep 02 17:50:42 mccann-dbh systemd[1]: Stopped MySQL Server.
Hint: Some lines were ellipsized, use -l to show in full.

2.新建数据库存放目录

[root@mccann-dbh ~]$ mkdir /data/mysql-8.0.24
[root@mccann-dbh ~]$ cd /data/mysql-8.0.24/

3.移动相关数据目录

[root@mccann-dbh /data/mysql-8.0.24]$ mv /usr/local/mysql/data ./
[root@mccann-dbh /data/mysql-8.0.24]$ mv /usr/local/mysql/etc ./
[root@mccann-dbh /data/mysql-8.0.24]$ mv /usr/local/mysql/log ./

4.配置数据库软连接

#1.做软连接
[root@mccann-dbh /data/mysql-8.0.24]$ ln -s /data/mysql-8.0.24/data /usr/local/mysql/
[root@mccann-dbh /data/mysql-8.0.24]$ ln -s /data/mysql-8.0.24/log /usr/local/mysql/
[root@mccann-dbh /data/mysql-8.0.24]$ ln -s /data/mysql-8.0.24/etc /usr/local/mysql/

#2.查看相关软连接
[root@mccann-dbh /data/mysql-8.0.24]$ cd /usr/local/mysql/
[root@mccann-dbh /usr/local/mysql]$ ll
total 284
drwxr-xr-x.  2 mysql mysql   4096 2021-03-26 03:42 bin
lrwxrwxrwx.  1 root  root      23 2021-09-02 17:54 data -> /data/mysql-8.0.24/data
drwxr-xr-x.  2 mysql mysql     55 2021-03-26 03:42 docs
lrwxrwxrwx.  1 root  root      22 2021-09-02 17:54 etc -> /data/mysql-8.0.24/etc
drwxr-xr-x.  3 mysql mysql    282 2021-03-26 03:42 include
drwxr-xr-x.  6 mysql mysql    201 2021-03-26 03:42 lib
-rw-r--r--.  1 mysql mysql 274942 2021-03-22 16:44 LICENSE
lrwxrwxrwx.  1 root  root      22 2021-09-02 17:54 log -> /data/mysql-8.0.24/log
drwxr-xr-x.  4 mysql mysql     30 2021-03-26 03:42 man
-rw-r--r--.  1 mysql mysql    666 2021-03-22 16:44 README
drwxr-xr-x. 28 mysql mysql   4096 2021-03-26 03:42 share
drwxr-xr-x.  2 mysql mysql     77 2021-03-26 03:42 support-files

5.重启服务

#1.重启服务
[root@mccann-dbh /usr/local/mysql]$ systemctl  start mysqld.service 

#2.查看服务状态
[root@mccann-dbh /usr/local/mysql]$ systemctl  status mysqld.service 
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-02 17:55:42 CST; 5s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 20316 (mysqld_safe)
   CGroup: /system.slice/mysqld.service
           ├─20316 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf
           └─21948 /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/lo...

Sep 02 17:55:42 mccann-dbh systemd[1]: Started MySQL Server.
Sep 02 17:55:43 mccann-dbh mysqld_safe[20316]: 2021-09-02T09:55:43.181022Z mysqld_safe Logging to '/usr/local/mysql/log/error.log'.
Sep 02 17:55:43 mccann-dbh mysqld_safe[20316]: 2021-09-02T09:55:43.203721Z mysqld_safe Starting mysqld daemon with databases fro...ql/data
Hint: Some lines were ellipsized, use -l to show in full.

6.登录数据库

[root@mccann-dbh ~]$ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 8
Server version: 8.0.24 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.

root@localhost 17:56:  [(none)]> 
root@localhost 17:56:  [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

root@localhost 17:56:  [(none)]> quit
Bye

五、Nginx安装

1.安装Nginx

1.编写nginx安装脚本
[root@mccann-dbh ~]$ vim Ins_Nginx.sh 
#!/usr/bin/bash
# Author:jh
# Time:2020-12-11  18:59:53
# Name:nginx_guanfang_ins.sh
# Version: 1.0
# Discription: To  

#1.配置nginx官方源
cat >/etc/yum.repos.d/nginx.repo<<'EOF'
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
EOF

#2.安装依赖
yum install -y gcc gcc-c++ autoconf pcre pcre-devel make automake wget httpd-tools vim tree

#3.安装nginx
yum install -y nginx

#5.启动服务
systemctl --now enable nginx

#6.查看版本号
nginx -v

#7.验证服务
curl 127.0.0.1:80

rm -rf ./Ins_Nginx.sh

2.添加执行权限
[root@mccann-dbh ~]$ chmod +x Ins_Nginx.sh

3.运行脚本
[root@mccann-dbh ~]$ sh Ins_Nginx.sh

4.修改nginx配置文件
[root@mccann-dbh ~]$ cd /etc/nginx/
[root@mccann-dbh /etc/nginx]$ vim nginx.conf 
user root;
worker_processes auto;
worker_cpu_affinity auto;
error_log /var/log/nginx/error.log warn;
pid /run/nginx.pid;
worker_rlimit_nofile 35535;

events {
    use epoll;    
    worker_connections 10240;
}

http {
    include             mime.types;
    default_type        application/octet-stream;    
    charset utf-8;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '          
		      '$status $body_bytes_sent "$http_referer" '
   		      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    server_tokens off;
    client_max_body_size 200m;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    gzip on;
    gzip_disable "MSIE [1-6].";
    gzip_http_version 1.1;
    gzip_comp_level 2;
    gzip_buffers 16 8k;
    gzip_min_length 1024;
    gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript image/jpeg;
    include /etc/nginx/conf.d/*.conf;                               
}

3.启动Nginx并设置开机自启

#1.启动Nginx并设置开机自启
[root@mccann-dbh /etc/nginx]$ systemctl  start nginx
[root@mccann-dbh /etc/nginx]$ systemctl  enable nginx
Created symlink from /etc/systemd/system/multi-user.target.wants/nginx.service to /usr/lib/systemd/system/nginx.service.

#2.查看Nginx状态
[root@mccann-dbh /etc/nginx]$ systemctl  status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Thu 2021-09-02 16:51:55 CST; 8s ago
 Main PID: 18015 (nginx)
   CGroup: /system.slice/nginx.service
           ├─18015 nginx: master process /usr/sbin/nginx
           ├─18016 nginx: worker process
           ├─18017 nginx: worker process
           ├─18018 nginx: worker process
           └─18019 nginx: worker process

Sep 02 16:51:55 mccann-dbh systemd[1]: Starting The nginx HTTP and reverse proxy server...
Sep 02 16:51:55 mccann-dbh nginx[18010]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Sep 02 16:51:55 mccann-dbh nginx[18010]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Sep 02 16:51:55 mccann-dbh systemd[1]: Started The nginx HTTP and reverse proxy server.

六、配置Nginx域名访问

1.配置mccann-dbh-h5前端

[root@mccann-dbh ~]$ cd /etc/nginx/conf.d/
[root@mccann-dbh /etc/nginx/conf.d]$ vim dbhh5.mccann.dataxbusiness.com.conf
  server {
        listen       80;
        server_name  dbhh5.mccann.dataxbusiness.com;

        location / {
           root /data/webproject/dbhh5;
        }

    }

2.配置mccann-dbh-pc前端

[root@mccann-dbh /etc/nginx/conf.d]$ cat dbhweb.mccann.dataxbusiness.com.conf
  server {
        listen       80;
        server_name  dbhweb.mccann.dataxbusiness.com;

        location / {
           root /data/webproject/dbhweb;
        }

    }

3.配置mccann-dbh后端

[root@mccann-dbh /etc/nginx/conf.d]$ cat dbhbg.mccann.dataxbusiness.com.conf
upstream dbhbg.mccann.dataxbusiness.com {
        server localhost:6666;
}

server {
	listen 80;
#        listen 443 ssl;
        server_name dbhbg.mccann.dataxbusiness.com;

#        ssl_certificate      /etc/ssl/private/dm/rbcas.com.cn.pem;
#        ssl_certificate_key  /etc/ssl/private/dm/rbcas.com.cn.key;

#       ssl_session_timeout 5m;
#       ssl_protocols TLSV1 TLSv1.1 TLSv1.2;
#       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
#       ssl_prefer_server_ciphers on;

        access_log /data/logs/dmtest.rbcas.com.cn_access.log;
        error_log  /data/logs/dmtest.rbcas.com.cn_error.log;

        location / {
        proxy_pass http://dbhbg.mccann.dataxbusiness.com;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # enables WS support
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection  "upgrade";
        }

}

4.配置前后端相关目录

[root@mccann-dbh /etc/nginx/conf.d]$ mkdir -p /data/webproject/dbhh5
[root@mccann-dbh /etc/nginx/conf.d]$ mkdir -p /data/webproject/dbhweb
[root@mccann-dbh /etc/nginx/conf.d]$ mkdir -p /data/logs/

七、上传前端web文件

1.上传mccann-dbh-h5前端

#1.上传mccann-dbh-h5前端文件
[root@mccann-dbh /etc/nginx/conf.d]$ cd /data/webproject/dbhh5
[root@mccann-dbh /data/webproject/dbhh5]$ rz

#2.查看压缩包
[root@mccann-dbh /data/webproject/dbhh5]$ ll
total 764
-rw-r--r--. 1 root root 781184 2021-09-02 18:21 dbh-h520210902-1.zip

#2.解压mccann-dbh-h5前端文件
[root@mccann-dbh /data/webproject/dbhh5]$ unzip dbh-h520210902-1.zip 

2.上传mccann-dbh-pc前端

#1.上传mccann-dbh-pc前端文件
[root@mccann-dbh /data/webproject/dbhh5]$ cd /data/webproject/dbhweb
[root@mccann-dbh /data/webproject/dbhweb]$ rz

#2.查看压缩包
[root@mccann-dbh /data/webproject/dbhweb]$ ll
total 1356
-rw-r--r--. 1 root root 1386512 2021-09-02 18:21 dbh-pc20210902-1.zip

#3.解压mccann-dbh-pc前端文件
[root@mccann-dbh /data/webproject/dbhweb]$ unzip dbh-pc20210902-1.zip 

八、上传后端jar文件

#1.新建后端dbh文件存放目录
[root@mccann-dbh ~]$ mkdir -p /data/backproject/dbh 

#2.上传后端dbh文件
[root@mccann-dbh ~]$ cd /data/backproject/dbh
[root@mccann-dbh /data/backproject/dbh]$ rz

#3.查看jar包
[root@mccann-dbh /data/backproject/dbh]$ ll
total 134256
-rw-r--r--. 1 root root       287 2021-09-02 19:02 application-prod.yml
-rw-r--r--. 1 root root       631 2021-09-02 19:41 application.yml
-rw-r--r--. 1 root root 137463918 2021-09-02 18:28 dbh-0.0.1-SNAPSHOT.jar
drwxr-xr-x. 2 root root        55 2021-09-02 19:40 logs
-rw-r--r--. 1 root root       674 2021-09-02 20:04 run.sh
drwxr-xr-x. 2 root root         6 2021-09-02 19:40 upload

#4.编写启动脚本
[root@mccann-dbh /data/backproject/dbh]$ vim run.sh 
Project_name=$1
Port_no=$2

#echo $Project_name
#echo $Port_no

source /etc/profile

# 进入到项目
cd /data/backproject/$Project_name

# 找到原进程,kill
pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
kill -9 $pid


#启动jar
nohup java -jar $Project_name-0.0.1-SNAPSHOT.jar --server.port=$Port_no -server -Xmx1000m -Xms1000m -Xmn700m -XX:+UseParallelGC &

echo "starting service..."
sleep 20

#根据重启后是否有当前应用判断启动是否成功
pid=$(ps -ef | grep java| grep $Project_name|awk -F '[ ]+' '{print $2}')
#echo $pid
if [ -z $pid ];then
  echo "启动失败"
  exit 1
else
  echo $Project_name :  $pid  "SUCCESS"
fi

#5.启动jar包
[root@mccann-dbh /data/backproject/dbh]$ sh run.sh dbh 6666
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
starting service...
nohup: appending output to ‘nohup.out’
dbh : 27108 SUCCESS

#6.查看进程
[root@mccann-dbh /data/backproject/dbh]$ ps -ef |grep dbh
root     27108     1 23 20:09 pts/1    00:00:22 java -jar dbh-0.0.1-SNAPSHOT.jar --server.port=6666 -server -Xmx1000m -Xms1000m -Xmn700m -XX:+UseParallelGC
root     27233 25002  0 20:11 pts/1    00:00:00 grep --color=auto dbh

九、重载Nginx并放行端口

#1.重载Nginx
[root@mccann-dbh ~]$ nginx -s reload

#2.登录亚马逊云服务器,放行80端口,实现全网访问

十、Web测试访问

#1.mccann-dbh-h5访问,输入用户名密码,课正常登陆。

#1.mccann-dbh-pc访问,输入用户名密码,课正常登陆。

#3.创建用户账号,按照顺序依次创建了账号Shiseido、Administrator-MRM,至此mccann-dbh生产环境部署完成。

原文地址:https://www.cnblogs.com/jhno1/p/15220887.html