rpm安装包管理
rpm(Redhat package manager)是redhat(红帽子)公司出品的一种软件包管理工具。目前大多数的linux厂商都支持rpm
优点:
- rpm方式安装软件非常方便。
- 配套的rpm资源丰富
- 软件包内容的校验
- 支持多种硬件
http://rpmfind.net/ 全球rpm镜像站,里面包含了所有的rpm。如果要安装某个软件,首先去此网站搜索下载。
rpm的五大功能
- 安装 将软件安装到操作系统
- 卸载 将软件移除
- 升级 更新软件的新版本
- 查询 查询软件包的信息
- 验证 验证操作系统中的软件是否为rpm包中的软件
rpm的用法:
i:安装 install
e:卸载 erase
v:(verbose)安装的时候显示软件名称
h:(hash)安装的时候显示安装进度#######
U:(update)升级软件包
qa:(query all)显示当前操作系统安装的所有rpm包
ql: 查询软件安装包的所有文件
qf: 查询某个文件是哪个rpm安装的
查询所有的rpm包的个数
rpm -qa | wc -l
查询是否安装了vsftp软件
rpm -qa | grep vsftp
安装vsftp
rpm -ivh vsftpd-3.0.2-28.el7.x86_64.rpm
卸载vsftp
rpm -e --nodeps vsftpd (卸载vsftp,忽略依赖关系)
rpm -e vsftpd
查询rpm包安装到操作系统的所有文件
rpm -ql vsftpd
通过操作系统的文件,查询此文件属于哪个rpm包释放出来的
rpm -qf 文件名
当你发现某目录下莫名出现了一个文件,先不要着急干掉,先执行一下这个命令,看是哪个软件安装的时候创建的,如果不属于任何软件,并且确定不是其他小伙伴创建的,再干掉
Yum
Yum(yellow dog updater modified),使用rpm来安装软件,前提是需要rpm包,rpm的搜索下载,安装,更新,卸载都需要人工完成。有可能下载的rpm错误,或者rpm包依赖于其他的rpm包。Yum给我们提供了一个rpm的仓库,并且维护rpm之间的依赖关系。Yum可以自动现在rpm包,如果有依赖关系,也会自动下载被依赖的rpm包。Yum的资源也很丰富,fedora,suse,redhat…主流的linux厂商都支持yum。
Yum的功能和rpm一样,其实就是rpm的增强版,简化了rpm的操作。Yum安装源的配置文件/etc/yum.repos.d/CentOS-Base.repo相当于当年Java中,自己手动引jar包和用maven的区别
修改默认的yum源站点
http://mirrors.aliyun.com/repo/Centos-7.repo 下载阿里云rpm镜像源的配置文件
wget http://mirrors.aliyun.com/repo/Centos-7.repo
将下载的配置文件改名为默认的rpm镜像源配置
mv Centos-7.repo CentOS-Base.repo
常用命令:
1. 列出镜像源
yum repolist
2. 查询rpm包
yum search vsftp
3. 安装rpm包
yum install rpm名
yum -y install vsftpd.x86_64 (-y是遇见提示信息自动yes)
4. 卸载rpm包
yum remove vsftpd
5. 升级rpm包
yum update rpmname
yum update kernel (有危险,升级失败,整个操作系统崩溃)
mysql安装
yum方式安装mysql服务
步骤一:首先下载mysql的yum源配置
根据MySQL的版本找到要下载的yum源
https://dev.mysql.com/downloads/repo/yum/
下载mysql的yum源
wget http://dev.mysql.com/get/mysql80-community-release-el7-7.noarch.rpm
步骤二:安装mysql的yum源
yum -y install mysql80-community-release-el7-7.noarch.rpm
步骤三:yum方式安装mysql
yum -y install mysql-server --nogpgcheck
–nogpgcheck 不校验数字签名
注意点:
linux中的mysql默认表名和数据库名区分大小写,修改mysql的配置,使其不区分大小写。
① 关于lower_case_table_names参数对表名称或数据库名称大小写敏感的控制。
② Unix下默认为0,也就是大小写敏感的;Windows下默认为1,不敏感;macOS默认为2,存储区分大小写,但是在查询时会转换为小写。
③ 对于在大小写不敏感的系统(Windows和macOS)不能将该字段设置为0。
msyql8 默认是区分大小写的,在低版本比如 5.7等设置不区分大小写直接在
my.conf 的 [mysqld] 下添加
lower_case_table_names=1
重启mysql 服务即可,在8.0版本中,添加此配置会导致mysql服务重启失败,可在启动之前修改/etc/my.cnf中的变量,添加
lower-case-table-names=1
然后执行初始化命令:
mysqld --initialize --user=mysql --lower-case-table-names=1
如果 /var/log/mysql/mysqld.log中有提示以下错误:
2020-08-19T10:46:21.497887Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2020-08-19T10:46:21.498110Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2020-08-19T10:46:21.498273Z 0 [ERROR] [MY-010119] [Server] Aborting
则需要把MySQL的数据目录清空,默认的位置为:/var/lib/mysql,运行的命令为:
rm -rf /var/lib/mysql
步骤四:使用mysql
1. 启动mysql
2. 命令行进入mysql
查询临时密码
cat /var/log/mysqld.log| grep password
使用临时密码进入命令行
但是不能做任何操作,因为为了安全起见,需要马上立即修改临时密码。
3. 修改root密码,5.8要求必须首先修改密码,不修改其他所有的命令不可以使用。
ALTER USER USER() IDENTIFIED BY '123456Admin@123';
4. 修改密码策略:(好像8.0不是很好用,5.7可以用)
默认密码策略是要求数据库密码必须有一定的复杂度,否则无法创建密码,修改过密码策略,则可以设置简单的密码(如:root,1234),这一步如有特殊需要,可以另行搜索
修改mysql默认的密码策略
set global validate_password_policy=0;
set global validate_password_length=1;
flush privileges;
修改root用户的密码为root
alter user 'root'@'localhost' identified by 'root';
修改localhost以外,远程连接用户的密码为root
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
5. 赋予远程登陆权限(8.0亲测可用)
在MySQL8.0中和MySQL5.7不一样,MySQL5.7中只需要一条语句就完成了,然而在MySQL8.0需要用2条命令来完成,如下
CREATE USER 'root'@'%' IDENTIFIED BY 'Root@123';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
第一句创建用户,第二句为赋予权限
6. 执行sql文件
将sql文件传入Linux系统中
执行sql文件
source 文件的位置
7. 导出sql文件
mysqldump -uroot -proot databasename > xxx.sql
8. 将idea中的代码打成war包,传到Linux中tomcat的webapp下
记得修改jdbc.properties中的配置为刚设置的Linux中MySQL的配置
复制到webapp目录下,tomcat自动解压
去浏览器登录确定Linux的MySQL可以用(能登录就能说明可以用)
实战演练-发送邮件
步骤一:安装sendmail软件
查询是否有sendmail安装包
yum search sendmail
安装sendmail
yum install -y sendmail.x86_64
步骤二:配置发件人信息
- 开启smtp服务,并生成授权码
- 在linux配置文件中填写发件人信息
vim /etc/mail.rc
#接收邮件服务器
set from=xxxxxxx@qq.comset
#发送邮件服务器
smtp=smtp://smtp.qq.com:587
#账户名
set smtp-auth-user=xxxxxxx
#授权码
set smtp-auth-password=********
#电子邮件地址
set smtp-auth=login
步骤三:启动邮件服务
systemctl start sendmail
步骤四:发送邮件
echo "I miss you" | mail -s "mySubject" "xxxxxx@qq.com"
“I miss you” 邮件的内容
“mySubject” 邮件的主题
“xxxxxx@qq.com” 收件人