Linux Centos7部署环境安装-CentOS

Centos7部署环境安装及Linux常用命令
* centos系统下各文件夹的作用
* centos7修改系统默认语言
* centos7安装rz/sz命令
* centos7安装netstat
* centos7安装lsof命令
* centos7下载并安装jdk并配置环境变量
* centos7安装Tomcat
* centos7安装Nginx
* centos7安装MySQL
* 解决vim的中文乱码问题
* Linux常用命令

centos系统下各文件夹的作用

  • /: 根目录,一般根目录下只存放目录,不要存放文件,/etc、/bin、/dev、/lib、/sbin应该和根目录放置在一个分区中
  • /bin:/usr/bin: 可执行二进制文件的目录,如常用的命令ls、tar、mv、cat等。
  • /boot: 放置linux系统启动时用到的一些文件。
    • /boot/vmlinuz为linux的内核文件,以及/boot/gurb。建议单独分区,分区大小100M即可
  • /dev: 存放linux系统下的设备文件,访问该目录下某个文件,相当于访问某个设备,常用的是挂载光驱mount /dev/cdrom /mnt。
  • /etc: 系统配置文件存放的目录,不建议在此目录下存放可执行文件,重要的配置文件有/etc/inittab、/etc/fstab、/etc/init.d、/etc/X11、/etc/sysconfig、/etc/xinetd.d修改配置文件之前记得备份。注:/etc/X11存放与x windows有关的设置。
  • /home: 系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,表示当前用户的家目录,test表示用户test的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
  • /lib:/usr/lib:
    • /usr/local/lib: 系统使用的函数库的目录,程序在执行过程中,需要调用一些额外的参数时需要函数库的协助,比较重要的目录为/lib/modules。
  • /lost+fount: 系统异常产生错误时,会将一些遗失的片段放置于此目录下,通常这个目录会自动出现在装置目录下。如加载硬盘于/disk 中,此目录下就会自动产生目录/disk/lost+found
  • /mnt:/media: 光盘默认挂载点,通常光盘挂载于/mnt/cdrom下,也不一定,可以选择任意位置进行挂载。
  • /opt: 给主机额外安装软件所摆放的目录。如:FC4使用的Fedora 社群开发软件,如果想要自行安装新的KDE 桌面软件,可以将该软件安装在该目录下。以前的 Linux 系统中,习惯放置在 /usr/local 目录下
  • /proc: 此目录的数据都在内存中,如系统核心,外部设备,网络状态,由于数据都存放于内存中,所以不占用磁盘空间,比较重要的目录有/proc/cpuinfo、/proc/interrupts、/proc/dma、/proc/ioports、/proc/net/*等
  • /root: 系统管理员root的家目录,系统第一个启动的分区为/,所以最好将/root和/放置在一个分区下。
  • /sbin:/usr/sbin:/usr/local/sbin: 放置系统管理员使用的可执行命令,如fdisk、shutdown、mount等。与/bin不同的是,这几个目录是给系统管理员root使用的命令,一般用户只能”查看”而不能设置和使用。
  • /tmp: 一般用户或正在执行的程序临时存放文件的目录,任何人都可以访问,重要数据不可放置在此目录下
  • /srv: 服务启动之后需要访问的数据目录,如www服务需要访问的网页数据存放在/srv/www内
  • /usr: 应用程序存放目录,
    • /usr/bin 存放应用程序,
    • /usr/share 存放共享数据,
    • /usr/lib 存放不能直接运行的,却是许多程序运行所必需的一些函数库文件。
    • /usr/local:存放软件升级包。
    • /usr/share/doc: 系统说明文件存放目录。
    • /usr/share/man: 程序说明文件存放目录,使用 man ls时会查询/usr/share/man/man1/ls.1.gz的内容建议单独分区,设置较大的磁盘空间
  • /var: 放置系统执行过程中经常变化的文件,如随时更改的日志文件 /var/log,/var/log/message: 所有的登录文件存放目录,/var/spool/mail: 邮件存放的目录, /var/run: 程序或服务启动

linux Java开发常用命令

centos7修改系统默认语言

查看系统是否已经安装了中文语言包

1
locale -a |grep zh_CN

查看系统默认语言

1
echo $LANG

修改系统默认语言

修改/etc/locale.conf文件,修改为 LANG=zh_CN.UTF-8

centos7安装开发工具包

英文系统安装: # yum -y groupinstall “Development tools”
中文系统安装: # yum -y groupinstall “开发工具”

centos7安装rz/sz命令

1
2
3
4
5
6
7
8
9
10
#######安装rz/sz命令#######
yum install -y lrzsz

#######解压/压缩.tar.gz#######
#解压
tar -xvzf apache-tomcat-8.5.23.tar.gz
#压缩
tar -zcvf 文件名.tar.gz 要压缩的文件/文件夹
# 例如:
tar -zcvf webfile.tar.gz webfile

centos7安装netstat

1
yum install net-tools

centos7安装lsof命令

1
yum install lsof

centos7 yum下载并安装jdk并配置环境变量

  1. 检查是否安装过java:
1
yum list installed | grep java
  1. 卸载java
1
yum -y remove java-1.8.0-openjdk*
  1. 查看java软件包列表
1
yum -y list java*
  1. 下载安装java1.8的所有软件包,中途需要输入y来确认下载。
1
yum install java-1.8.0-openjdk*
  1. 检查是否安装成功
1
java -version
  1. 配置环境变量

yum 安装的java默认在/usr/lib/jvm,进入该目录,可以看到java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64,JAVA_HOME指向该目录;在文件底部加入

6.1 当前用户使用:

1
2
3
4
5
6
7
8
# vi命令编辑~/.bashrc文件,按I进入编辑模式
vi ~/.bashrc

# 添加下面这行代码
export  JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64

# 保存并退出
:wq

6.2 所有用户使用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

vi /etc/profile

#set java environment-------------start  

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/jre/lib/rt.jar

export PATH=$PATH:$JAVA_HOME/bin

#set java environment-------------end

# 保存并退出

# 使配置生效
. /etc/profile

  1. 查看配置的环境变量、安装是否成功
1
2
3
4
5
6
7
8
9
# 查看配置的环境变量
echo $JAVA_HOME
# java安装是否成功

java -version

# jdk是否安装成功、如果出现说明文档,则安装成功
javac

centos7安装Tomcat

安装jdk,上传tomcat压缩包,并解压:

1
2
3
4
5
6
7
8
#### 启动tomcat
cd apache-tomcat-8.5.23/bin/
sh startup.sh

#### 查看启动日志
cd apache-tomcat-8.5.23/logs/
cat catalina.out

centos7安装Nginx

下载Nginx

1
wget http://nginx.org/download/nginx-1.14.0.tar.gz

解压安装包,并进入安装包目录

1
2
tar zxvf nginx-1.14.0.tar.gz
cd nginx-1.14.0

编译安装

1
2
3
4
5
6
# 1.
./configure
# 2.
make
# 3.
make install

查看nginx版本

1
/usr/local/nginx/sbin/nginx -v

检查配置文件nginx.conf的正确性命令

1
/usr/local/nginx/sbin/nginx -t

正常结果如下:

1
2
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

创建nginx全局命令

1
ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx

nginx常用命令

1
2
3
4
5
6
7
8
9
10
#启动命令
/usr/local/nginx/sbin/nginx
#重新载入配置文件
/usr/local/nginx/sbin/nginx -s reload
#重启 Nginx
/usr/local/nginx/sbin/nginx -s reopen
#停止 Nginx
/usr/local/nginx/sbin/nginx -s stop
#监测Nginx服务是否正在运行
netstat -anput | grep nginx

解决问题

nginx: [error] open() “/usr/local/nginx/logs/nginx.pid” failed (2: No such file or directory)

1
/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

make: *** 没有规则可以创建“default”需要的目标“build”。 停止。
// 安装依赖包
yum install pcre-devel zlib zlib-devel openssl openssl-devel

参考文档

CentOS下安装Nginx并测试通过:https://blog.csdn.net/qq_35976320/article/details/80458079

nginx如何配置负载均衡:https://www.cnblogs.com/yuuje/p/11005992.html

Git安装

安装命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# 查看是否安装git,如果出现下面的则说明已经安装过了git,需要卸载
rpm -qa | grep git
# 卸载Git:
rpm -e --nodeps git 或者 rpm -e git
# 下载
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.23.0.tar.gz -nc -c -P /usr/local/src/

# 打开目录
cd /usr/local/src/
# 解压
tar -zxvf git-2.23.0.tar.gz

cd git-2.23.0
# 编译安装git
make prefix=/usr/local/git all
sudo make prefix=/usr/local/git install
# 链接git到/usr/bin
sudo ln -s /usr/local/git/bin/git /usr/bin/git

git --version
# 完成

git配置(可不配置)

1
2
3
4
5
ssh-keygen
cd ~/.ssh

cat id_rsa.pub
#把公钥放到git平台上

安装MySQL

centos7下yum安装mysql5.6

查看MySQL可用安装包

1
yum -y list mysql*

查看当前mariadb安装列表

1
rpm -qa | grep mariadb

卸载

1
2
rpm -e --nodeps mariadb-5.5.64-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64

安装MySQL的yum源

上面的网站找到链接,使用wget安装:

1
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'

安装yum源

1
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm

检查mysql源是否安装成功

1
yum repolist enabled | grep "mysql.*-community.*"

查看有哪些版本的mysql:

1
yum repolist all | grep mysql

mysql-devel:开发用到的库以及包含文件;
mysql:mysql客户端;
mysql-server:数据库服务器;

默认安装mysql5.7

1
yum install -y mysql-community-server

启动mysql

1
2
3
4
#centos7 命令 启动mysql
systemctl start mysqld
#查看状态
systemctl status mysqld

查看mysql状态-2019925224248

登录数据库,修改数据库密码

1
grep 'temporary password' /var/log/mysqld.log

mysql修改密码-2019925224433

登录数据库:

1
mysql -uroot -p

输入密码后回车,进入mysql,执行以下命令:

1
2
### 密码不要太简单,否则修改失败
SET PASSWORD = PASSWORD('Mysql520!');

mysql修改密码结果-2019925225051

设置远程可以登录

1
2
3
4
#第一步
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Mysql520!' WITH GRANT OPTION;
#第二步
flush privileges;

修改配置文件

1
vim /etc/my.cnf
修改数据库编码

在最后新增以下内容,修改编码为utf8mb4

1
2
3
4
5
6
7
8
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
设置时区为东八区
1
default-time_zone = '+8:00'

进入命令行,输入SQL语句:show variables like 'char%';查看字符集;

sql支持group by语句
1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

重启数据库,使配置生效

1
systemctl restart mysqld

设置开机启动

1
2
systemctl enable mysqld
systemctl daemon-reload

mysql 设置大小写不敏感

1
show global variables like '%case%';

lower_case_file_system:表示当前系统文件是否大小写敏感(ON为不敏感,OFF为敏感),只读参数,无法修改。
lower_case_table_names:表示表名是否大小写敏感,可以修改。
lower_case_table_names = 0时,mysql会根据表名直接操作,大小写敏感。 
lower_case_table_names = 1时,mysql会先把表名转为小写,再执行操作。

修改:

1
2
3
vim /etc/my.cnf
#添加
lower_case_table_names = 1

保存后重启mysql服务。

开放云服务器的3306端口

如果测试连接的时候不能连接成功,请开放云服务器的3306端口。

CentOS7 离线安装node

一、下载

阿里镜像:https://npm.taobao.org/mirrors/node/

我下载的是node-v12.14.0-linux-x64.tar.gz

二、安装

1
2
3
4
# 解压
tar -zxvf node-v12.14.0-linux-x64.tar.gz

# 解压位置 /usr/local/install/node-v12.14.0-linux-x64

配置环境变量

1
2
3
4
5
6
7
8
9
10

vim /etc/profile

# 配置环境变量
export NODE_HOME=/usr/local/install/node-v12.14.0-linux-x64
export PATH=$NODE_HOME/bin:$PATH
# 或者 PATH=$NODE_HOME/bin:$PATH

# 使修改生效
source /etc/profile

三、校验是否配置成功方式:

1
2
# node -v
# npm -v

NodeJs 问题处理

问题一、line 3: npm: command not found

1
2
3
4
5
# 添加node软链接
ln -s /usr/local/install/node-v12.14.0-linux-x64/bin/node /usr/bin/node
# 如果还是不行,命令前增加

#!/bin/bash -ilex

MySQL主从搭建

一、主服务器master修改:

1
2
3
4
5
vim /etc/my.cnf
# 找到主数据库的配置文件my.cnf(或者my.ini),我的在/etc/mysql/my.cnf,在[mysqld]部分插入如下两行:
[mysqld]
log-bin=mysql-bin //开启二进制日志
server-id=1 //设置server-id

重启mysql,创建用于同步的用户账号
打开mysql会话shell>mysql -uname -ppassword
创建用户并授权:用户: weyoung 密码: Mysql520!

1
2
3
mysql> CREATE USER weyoung@从数据库的IP IDENTIFIED BY 'Mysql520!'; //创建用户
mysql> GRANT REPLICATION SLAVE ON *.* TO weyoung@从数据库的IP; //分配权限
mysql> FLUSH PRIVILEGES; //刷新权限
查看master状态
1
2
3
4
5
6
SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000001 | 779 | | | |
+------------------+----------+--------------+------------------+-------------------+

二、从服务器slave修改:

修改mysql配置
同样找到my.cnf配置文件,添加server-id

1
2
[mysqld]
server-id=2 //设置server-id,必须唯一

重启mysql,打开mysql会话,执行同步SQL语句(需要主服务器主机名,登陆凭据,二进制文件的名称和位置):

1
2
3
4
5
6
7
# show master status\G 查看主数据库配置
mysql> CHANGE MASTER TO
-> MASTER_HOST='主数据库IP',
-> MASTER_USER='weyoung',
-> MASTER_PASSWORD='Mysql520!',
-> MASTER_LOG_FILE='mysql-bin.000001',-- 注意修改和主数据库一样
-> MASTER_LOG_POS=649;-- 注意修改和主数据库一样
启动slave同步进程:
1
mysql>start slave;
查看slave状态:
1
SHOW SLAVE STATUS\G;
关闭slave状态
1
mysql>stop slave;

MySQL主从仅同步指定库

还可以用到的其他相关参数:
master开启二进制日志后默认记录所有库所有表的操作,可以通过配置来指定只记录指定的数据库甚至指定的表的操作,具体在mysql配置文件的[mysqld]可添加修改如下选项:
#不同步哪些数据库
binlog-ignore-db = mysql
binlog-ignore-db = test
binlog-ignore-db = information_schema

#只同步哪些数据库,除此之外,其他不同步
binlog-do-db = game

参考文档

1
centos7下使用yum源安装mysql5.7记录:[https://www.jianshu.com/p/531cc35b15e7](https://www.jianshu.com/p/531cc35b15e7)

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 查看ip地址
ip addr
# 查看占用端口的进程
netstat -lnp|grep 8080
#或
lsof -i:8080
# 根据进程ID查看进程的具体信息
ps axu|grep 2643
# 列出所有端口
netstat -ntlp
# 查看进程
ps -ef|grep nginx


# 杀死进程
kill -9 进程号

killall -9 进程名字

## 删除文件或文件夹
# 删除目录
rm /home/test
# -r是递归的删除参数表中的目录及子目录
rm -r /home/test
# f是不提示用户,删除目录下的所有文件
rm -rf /home/test
# -i是交互模式
rm -ir /home/test

解决vim的中文乱码问题

1
2
3
4
5
6
vim /etc/vimrc

# 上面文件中添加如下文件:
set fileencodings=utf-8,ucs-bom,gb18030,gbk,gb2312,cp936
set termencoding=utf-8
set encoding=utf-8

linux服务器之间传递文件

1
2
3
4
5
6
# scp -p 文件名 目标服务器用户名@目标服务器ip:目标服务器文件夹
# 示例如下:
scp -p file.tar.gz zhangsan@172.168.11.12:/home/zhangsan

# 然后输入密码即可。