设置IP地址和设置IP地址为静态
用VM的linux的时候,一定首先要把自己的IP改为静态的,不然下次恢复快照或者重启什么的,可能会导致IP地址变化
更改IP和设置IP为静态的方法
步骤:
- 进入这个文件
/etc/sysconfig/network-scripts/ifcfg-ens33 命令即 vim /etc/sysconfig/network-scripts/ifcfg-ens33 - 设置IP为静态
把这个后面的值改为static,表示设置IP为静态 - 更改IP
然后在文件最后面加上四行这个(如果没有的话,如果有则按照下面注释中的提示进行修改值即可)
IPADDR=192.168.78.182//这是自己要改成的IP地址,值是自己要设置的IP地址
GATEWAY=192.168.78.2//网关,值为自己IP地址前三位再加上.2
DNS1=192.168.78.2//DNS,值同上面网关
NETMASK=255.255.255.0//子网掩码,一样就行
注意一点: 在VM左上角菜单里点击编辑,点击里面的虚拟网络编辑器 4. 然后调用这个命令重启一下网络就行(这个命令在任何目录下都可调用) service network restart
然后通过ifconfig命令,可以看到自己的ip地址已经变为设置的IP
其他一些知识点
还有一点,在修改了文件后,可以通过sync命令来使文件更新到磁盘里,不然可能在非正常关机的情况下导致文件未真正的修改成功
linux下tomcat的webapps下,不要放过多无关的文件,不然会导致访问页面很慢
ps命令一点小知识
学习网址:菜鸟教程中的linux下的ps教程
-
ps -A 列出所有的进程 -
ps -a 显示所有终端机下执行的程序,除了阶段作业领导者之外 -
可以通过kill -9 PID 来杀死对应的进程,这个是强制性的,或者可以通过kill -15 PID ,可以温和的杀死进程,若这个无法杀死,建议还是用kill -9 PID
CentOS7可视化页面下设置为中文
MySQL部分
MySQL错误代码1130
当尝试通过ip进行远程连接MySQL,若之前并未修改mysql自带的名为mysql的数据库,开启MySQL 并未给远程连接的用户权限问题。 这样子操作mysql库,即可解决。
在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称’%'即可 mysql -u root -p mysql;use mysql; mysql;select ‘host’ from user where user=‘root’; mysql;update user set host = ‘%’ where user =‘root’; mysql;flush privileges; mysql;select ‘host’ from user where user=‘root’;
第一句:以权限用户root登录 第二句:选择mysql库 第三句:查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) 第四句:修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址 第五句:刷新MySQL的系统权限相关表 第六句:再重新查看user表时,查看是否修改成功
linux和linux上的mysql
写给我自己的 在阿里云服务器上,把redis解压在了opt下 把redis的命令和使用的配置文件放在了/usr/local/bin下 把tomcat8的压缩包放在了home下,解压在了/usr/local下
在官网上下载资源的选择:
配置环境变量在/etc/profile里面进行配置 使用resource /etc/profile让环境变量立即生效
防火墙的一些操作
linux和mysql
linux的rpm就类似于windows中的执行exe的程序命令一样 rpm是红帽特有的,rpm对应红帽软件包管理器的首字母(Red-Hat Package Manager) rpm在linux中就是用于安装软件包,跟yum不同,rpm是必须先有程序包才能安装 rpm -qa :用于查看当前系统所安装的所有软件 然后可以通过管道符来查找是否安装了某个指定的软件
管道符简介: 就这么一个符号:| 管道符主要用于多重命令处理,前面命令的打印结果作为后面命令的输入。简单点说就是,就像工厂的流水线一样,进行完一道工序后,继续传送给下一道工序处理… 比如查看是否某个程序是否存在进程(是否运行),或者查看某个软件是否安装
通过管道符来查找是否安装了某个指定的软件 如查看是否安装了mysql:rpm -qa|grep mysql
通过rpm安装mysql 首先准备对应的mysql必备的rpm包 进入mysql下载界面:此时出现的是8以上的版本,点击红色圈住的部分,进入5.7的版本 如下,在两个下拉框中选择linux对应的版本,如果是CentOS7的话跟我下面选择的保持一致即可,CentOS7就是Linux7 其他的根据下拉框中内容选择对应的版本即可 然后我们可以看到下面好多中关于MySQL的供我们下载 最引人注目的应该就是第一个: 这个里面包含了所有MySQL所必须的文件,并且还多了一些拓展的内容: 但是其实,MySQL并不需要这么多的内容,我选择了最小化安装,则只需要这六个即可: 这六个在下面的下载目录中都可以找到,我是一个一个下载下来的。。。。。 注意,下载的时候点击这里:表示不注册或者不登录,直接下载 如果要下载第一个RPM Bundle也可以,随后将其放在linux下,然后通过命令tar -zxvf 下载的Bundle包名 进行解压,然后会得到很多个rpm文件,其中就包含下面的几个,然后再按照下面的执行即可
当这些软件包都有了,然后先判断当前linux是否有和MySQL冲突的软件 首先,rpm -qa|grep mysql 查看是否已经安装MySQL,然后再rpm -qa|grep mariadb 查看是否有红帽自带的数据库管理软件mariadb,这个与MySQL冲突。 如果以上有哪个,则在安装之前,需要进行卸载:rpm -e --nodeps 软件名称
然后,则可执行接下来的安装 先把他们都放在都一个目录下,比如在/usr/local/下建一个mysql文件夹,把他们全放进去,然后按照如下顺序依次安装除了server的程序包,rpm安装命令:rpm -ivh rpm版的程序包 为什么要按照顺序?因为上面的一些包的安装可以需要依赖其他包的存在,所以先把被依赖的包安装上,再安装需要依赖其他包的包 最后再安装server。也是命令:rpm -ivh server包的名称 跟上面的一样 但是,这一个命令执行的时候,基本都会给你出点问题,对应的相关解决方式如下:
在通过rpm安装软件包的时候,经常会遇见一个报错error: Failed dependencies: 说我们没有对应的依赖 就比如当我们按照对应的顺序安装mysql的时候,到最后安装server的时候,如果没有安装一个叫net-tools 的网络工具,则就会报这样一个错,说需要net-tools ,所以我们可以通过yum install net-tools 命令来安装这个工具包
如果出现如下错误:则说明缺少libaio,则执行yum install libaio 安装一下libaio
如果server还安装不上的,可以尝试安装个perl-Module-Install.noarch 命令:yum install -y perl-Module-Install.noarch
如果又报了其他的错,可以尝试在安装service的命令最后加一个 --forece --nodeps
命令yun update 可以升级现有系统的软件和系统内核
linux的MySQL启动
可通过systemctl start/stop mysqld 来 启动/停止 MySQL服务 设置MySQL开机启动可使用命令:systemctl enable mysqld 如果前面有安装了小插件net-tools ,便可使用netstat命令。如未安装,则可yum install net-tools 来进行安装 如查看已经启动的服务:netstat -tunlp 。如果服务过多,可通过管道符来进行过滤:netstat -tunlp | grep mysqld 。这里使用的是模糊查询,使用netstat -tunlp | grep mysql 也能查到 或者通过PS 命令查看进程是否启动。ps -ef|grep mysqld 。进程比较多,可以使用管道符进行过滤
第一次登录 一开始MySQL会给我们自动生成一个密码,第一次登录我们没有密码,我们得去找一下这个自动生成的密码 MySQL启动后会生成对应的日志,我这里通过rpm默认安装的mySQL,所以日志位置就在默认的/var/log/下,然后通过管道符找出包含password单词的那一行日志,即可找到生成的密码
然后登录即可
然后修改密码: 如果想修改简单的密码,需要设置密码设置的校验规则,不然一般情况下,MySQL不让密码设置的太简单
设置密码结束后,如果需要远程连接这个数据库,则需要开启远程访问权限,如上图 这里需要注意的是,grant all on *.* to 'root'@' %' identified by 'root'; 这个命令,需要把最后单引号里面的root 改成自己设置的密码。 然后通过flush privileges; 刷新权限。 然后exit; 退出MySQL,再systemctl stop mysqld 停止mysql服务,然后再systemctl start mysqld 启动mysql服务。即重启服务。 然后记得给linux打开防火墙的3306端口,然后即可远程访问。
linux上一个用于文件上传的小工具 传输文件,我们可以直接在linux上安装一个小工具,如下 然后通过rz 命令即可弹出文件上传的窗口,进行文件上传
Windows 使用netstat -ano 命令即可查看所有占用端口的进程
1、nohup 后台运行Java程序,并将日志输出到指定的文件
项目的手动部署和自动部署
手动部署
在windows上,通过maven,将程序打包成jar,然后传到linux,然后通过java命令执行发布 我的从windows上传的jar包放在了/usr/local/app/下 执行jar包的命令:java -jar jar包名 通过nohub可以使其在后台执行
自动部署
编写shell脚本来通过Git自动拉取项目,并通过maven自动打包项目,并自动执行程序
linux安装Git和Maven
安装Git
首先通过yum查看是和自己当前Linux版本的Git安装包。命令:yum list git 安装命令: yum install git 通过git,拉取克隆项目 我的是克隆在了 /usr/local/下 先进入要存放的目录,然后使用git命令:git clone 仓库地址
安装Maven
先下载Maven的linux版本 先进入官网:https://maven.apache.org/download.cgi ,然后选择如下的,进行下载即可 下载好后,将其上传至linux中,我的放在了/usr/local/下 然后通过命令tar -zxvf maven包名 进行解压 然后要想使用起来舒服,则配置maven 首先是环境变量: 命令:vim /etc/profile 进入配置文件,进行修改,在最后面加入如下内容
export MAVEN_HOME=自己maven解压后的名字的路径/自己maven解压后的名字
export PATH=$JAVA_HOME/bin:$MAVEN_HOME/bin:$PATH
然后执行source /etc/profile 命令,使配置文件生效 然后使用命令mvn -version ,查看是否能出现版本信息,若出现,则表示成功 配置Maven的setting文件 经典步骤,设置阿里镜像和maven仓库位置: 我的setting文件内容:(篇幅有限,把多余的注释全给删了)
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.2.0 https://maven.apache.org/xsd/settings-1.2.0.xsd">
<localRepository>/usr/local/repo</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<servers>
</servers>
<mirrors>
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
</mirrors>
<profiles>
</profiles>
</settings>
编写shell脚本
编写shell脚本,创建 文件名.sh 文件,然后里面编写shell命令 我不会,就直接找了个模板改了改 其实就是linux命令的集合,都还是能看懂的 我这个sh文件在保存的时候可能保存失败,若保存失败,则把里面的中文去掉或者换成英文即可 内容如下:
echo =================================
echo 自动化部署脚本启动
echo =================================
echo 停止原来运行中的工程
APP_NAME=boot_ssmp
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Stop Process...'
kill -15 $tpid
fi
sleep 2
tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
else
echo 'Stop Success!'
fi
echo 准备从Git仓库拉取最新代码
cd /usr/local/boot_ssmp
echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成
echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`
cd target
echo 启动项目
nohup java -jar boot_ssmp-0.0.1-SNAPSHOT.jar &> boot_ssmp.log &
echo 项目启动完成
用户授权和运行shell脚本
在运行这个文件之前,我们需要先查看自己当前用户是否有执行这个文件的权限,若没有则需要先授权 通过查看当前目录文件的另一个命令:ll 可以查看所有用户所拥有的对这个文件的权限。如果要查看所有文件(包括隐藏文件),则通过加参数-a 来实现
如图,使用ll 命令后,文件最前面会出现一串字符,总共有10个,第一个表示当前文件的类型,d 表示文件夹,- 表示是文件1,还有其他表示软链接,硬链接什么什么的,这里不用关注太多 主要是后面9个,后面9个按照三个三个一组,如下图中所述 可以看到,当前我们用户对这个sh文件是只读模式 然后通过chmod进行修改权限 如下图,使用数字几其实很好记,可以把--- 这三个一组的当成一个二进制格式 如--r 表示二进制的001 ,即十进制的1,然后进一,即变成-w- ,表示二进制的010 ,即十进制的2 如此即可 非常简单,这里我只想给当前用户给予rwx 权限,则等同于二进制的111 即十进制的7 所以直接chmod 700 bootStart.sh 即可 然后当前用户就有权限了 然后执行我们的sh文件 直接命令文件所在目录/文件.sh 即可,若在当前目录,可以./文件,sh 执行。 然后项目便能自己部署执行
知道文件名,查看文件所在位置
若想看日志输出 则我们通过命令find / -name boot_ssmp.log 查看我们输出的日志文件的位置,然后查看即可
|