Linux常用脚本补充mysql和yum离线安装等内容
把自己的linux操作相关笔记分享出来。
网络相关
配置IP
cd /etc/sysconfig/network-scripts/
vi ifcfg-enp0s3
####DHCP网络配置####
NAME=eth0 ##指定网络链接的名字为eth0,个人习惯,开心就好
DEVICE=eth0 ##指定文件管理的网卡名称
BOOTPROTO=dhcp ##dhcp动态获取,none和static都表示静态网络
ONBOOT=yes ##是否开机启动
####静态网络地址配置####
NAME=eth0 ##指定网络链接的名字为eth0,个人习惯,开心就好
DEVICE=eth0 ##指定文件管理的网卡名称
BOOTPROTO=static ##dhcp动态获取,none和static都表示静态网络
ONBOOT=yes ##是否开机启动
IPADDR=10.0.0.10 ##设定ip为10.0.0.10
NETMASK=255.0.0.0|PREFIX=8 ##子网掩码为255.0.0.0
GATEWAY=10.0.0.1 ##网关地址,如果需要访问外网需要设置
DNS=***.***.***.*** ##DNS地址,如需域名解析需要设置
PEERDNS=yes|no ##是否修改/etc/resolv.conf,no表示不修改
####IPADDR、NETMASK、PREFIX、GATEWAY、DNS后面加数字,可以同时设置多组IP地址
####当然还有更多的参数可以配置,如果需要可以查看帮助文档/usr/share/doc/initscripts-*/sysconfig.txt
DNS配置
cat /etc/resolv.conf
vim /etc/resolv.conf
nameserver 172.17.0.1
nameserver 114.114.114.114
##或者在网卡配置里修改
vi ifcfg-enp0s3
DNS=***.***.***.*** ##DNS地址,如需域名解析需要设置
重启网络
service network restart
systemctl restart network (centos7版本命令)
服务启动
centos6
service network start
service network stop
service network restart
service network reload
service network status
## 服务自启动
ckconfig --level 5 服务名 on
centos7
systemctl restart network
## 查看列表
systemctl list-unit-files
systemctl --type service
## 查找服务名
systemctl list-unit-files | grep docker
## 设置自启动
systemctl enabled 服务名称
## 关闭自启动
systemctl disabled 服务名称
主机名
hostname ##查看主机名
hostnamectl set-hostname your-new-host-name ##修改主机名
# 查看修改结果
hostnamectl status
# 设置 hostname 解析
echo "127.0.0.1 $(hostname)" >> /etc/hosts
网络查看
ip addr/address ##可显示默认网卡的 IP 地址,Kubernetes 将使用此 IP 地址与集群内的其他节点通信,如 172.17.216.80
ip route show ##可以知道机器的默认网卡,通常是 eth0,如 default via 172.21.0.23 dev eth0
用户
创建用户
useradd rocket
passwd 123456
免密登录
host修改
vi /etc/hosts
192.168.3.210 worker1
192.168.3.211 worker2
192.168.3.212 worker3
免密设置
查看系统版本
cat /etc/redhat-release ##系统版本
lscpu ##查看CPU情况
# 查看内核版本
uname -srm
系统各目录
/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:系统默认的用户家目录,新增用户账号时,用户的家目录都存放在此目录下,~表示当前用户的家目录,~edu 表示用户 edu 的家目录。建议单独分区,并设置较大的磁盘空间,方便用户存放数据
/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:程序或服务启动后,其PID存放在该目录下。建议单独分区,设置较大的磁盘空间
Centos7.7 初始化脚本
os7init.sh
使用
sh os7init.sh hostname
java运行
##在线检索
yum search java|grep jdk
##在线安装 1.8
yum install java-1.8.0-openjdk
##进入安装目录
cd /usr/lib/jvm
##设置环境变量
vim /etc/profile
#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-0.el7_9.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASS_PATH PATH
##使配置文件生效
source /etc/profile
java -version
nohup java -jar XXX.jar &
tail -f nohup.out
路径java路径问题导致javac不生效:
查看原先已安装的jdk
yum list installed | grep java
卸载原先已安装jdk
yum -y remove java-1.7.0-openjdk*
yum -y remove java-1.8.0-openjdk*查看yum库中的java安装包 :
yum -y list java*
安装需要的jdk版本的所有java程序:yum -y install java-1.8.0-openjdk*
重新输入 java -version 和 javac -version 可以正常显示
进程
ps aux
ps命令用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。ps命令是最基本同时也是非常强大的进程查看命令,使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等,总之大部分信息都是可以通过执行该命令得到的。
a:显示当前终端下的所有进程信息,包括其他用户的进程。
u:使用以用户为主的格式输出进程信息。
x:显示当前用户在所有终端下的进程。
ps -elf
-e:显示系统内的所有进程信息。
-l:使用长(long)格式显示进程信息。
-f:使用完整的(full)格式显示进程信息。
top
以全屏交互式的界面显示进程排名,及时跟踪包括CPU、内存等系统资源占用情况,默认情况下每三秒刷新一次,其作用基本类似于Windows系统中的任务管理器。
pstree -aup
以树状图的方式展现进程之间的派生关系,显示效果比较直观。-a:显示每个程序的完整指令,包含路径,参数或是常驻服务的标示;-c:不使用精简标示法;-G:使用VT100终端机的列绘图字符;-h:列出树状图时,特别标明现在执行的程序;-H<程序识别码>:此参数的效果和指定”-h”参数类似,但特别标明指定的程序;-l:采用长列格式显示树状图;-n:用程序识别码排序。预设是以程序名称来排序;-p:显示程序识别码;-u:显示用户名称;
ps -ef |grep redis
grep命令是查找
中间的|是管道命令 是指ps命令与grep同时执行
这条命令的意思是显示有关redis有关的进程
kill -9 4394
##查看进程数量
ps -ef|grep 程序名称|grep -v grep | wc -l
jps
用于查看当前服务器中的java进程,类似于ps -ef | grep java,不同之处是它是由jdk提供的,可以输出JVM中运行的进程状态信息,因此它也可以用于jvm的监控和调优,参考https://my.oschina.net/feichexia/blog/196575,使用时需保证一正确配置java环境变量,常用参数有:-q:仅输出VM标识符,不包括classname,jar name,arguments in main method -m:输出main method的参数 -l:输出完全的包名,应用主类名,jar的完全路径名 -v:输出jvm参数 -V:输出通过flag文件传递到JVM中的参数(.hotspotrc文件或-XX:Flags=所指定的文件 -Joption:传递参数到vm,例如:-J-Xms512m
[hostid]:
[protocol:][[//]hostname][:port][/servername]
端口
##如果未安装lsof需要安装
yum install lsof
lsof -i
lsof -i:(端口号)
lsof -i:3306 (3306默认是mysql服务端的端口)
lsof -i:3690 (3690默认是svn服务端的端口)
netstat -anp |grep
防火墙
service firewalld status ;查看防火墙状态
service firewalld stop:关闭防火墙
firewall-cmd --list-all 查看开放的端口
# 设置开放的端口号
firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
# 重启防火墙
firewall-cmd --reload
VM 虚拟机指令
###扩容
##转换VDI
VBoxManage clonehd e:vboxUbuntu12.04Ubuntu1204-201302-disk1.vmdk e:vboxUbuntu12.04Ubuntu1204-201310-disk1.vdi --format VDI
##扩容至16G
VBoxManage modifyhd E:vmotheratguigu-disk001.vdi --resize 16384
另一种:
VM扩容后,需要在系统内部进行操作才可以使用扩容后的磁盘
把剩余空间创建新磁盘
==注意:具体系统名、文件名称不一样,一般为centos和root==
fdisk /dev/sda 创建磁盘
fdisk -l /dev/sda 查看磁盘
[root@zendlinux ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 4
First cylinder (1045-2088, default 1045):
Using default value 1045
Last cylinder, +cylinders or +size{K,M,G} (1045-2088, default 2088):
Using default value 2088
Command (m for help): t
Partition number (1-4): 3
Partition 3 does not exist yet!
Command (m for help): t
Partition number (1-4): 4
Hex code (type L to list codes): 8e
Changed system type of partition 4 to 8e (Linux LVM)
Command (m for help): wp
The partition table has been altered!
Disk /dev/mapper/vg_zendlinux-lv_swap: 855 MB, 855638016 bytes
255 heads, 63 sectors/track, 104 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
[root@zendlinux ~]# fdisk -l /dev/sda
Disk /dev/sda: 17.2 GB, 17179869184 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000dc501
Device Boot Start End Blocks Id System
/dev/sda1 * 1 64 512000 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 64 1045 7875584 8e Linux LVM
/dev/sda4 1045 2088 8383252 8e Linux LVM
格式化新分区
格式化之前需要重启 init 6
[root@localhost ~]# mkfs.xfs /dev/sda4
meta-data=/dev/sda4 isize=512 agcount=4, agsize=1048576 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=4194304, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
调整 LVM 大小
先看看当前 Volume Group
[root@zendlinux ~]# vgdisplay
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 6
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 2
Act PV 2
VG Size 15.50 GiB
PE Size 4.00 MiB
Total PE 3969
Alloc PE / Size 3959 / 15.46 GiB
Free PE / Size 10 / 40.00 MiB
VG UUID G1IckR-BqGy-po4L-uYVw-zLMc-S037-jS7SDP
名称为 vg_zendlinux,可调整大小(resizable),当前大小为15.50 GB。活动的 LVM 卷有
[root@zendlinux ~]# lvscan
ACTIVE '/dev/vg_zendlinux/lv_root' [6.71 GiB] inherit
ACTIVE '/dev/vg_zendlinux/lv_swap' [816.00 MiB] inherit
将分配过来的新磁盘空间创建为一个新的物理卷
[root@localhost ~]# pvcreate /dev/sda4
WARNING: xfs signature detected on /dev/sda4 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sda4.
Physical volume "/dev/sda4" successfully created.
pvdisplay查看
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 7.51 GiB / not usable 3.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 1922
Free PE 10
Allocated PE 1912
PV UUID YZNg77-ijrg-XxkR-VGGx-h455-aSbg-eZTV2C
--- Physical volume ---
PV Name /dev/sda3
VG Name centos
PV Size 8.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 2047
Free PE 0
Allocated PE 2047
PV UUID vLuh32-4fPQ-1pjU-vYA5-62Rj-3WcM-wW828V
"/dev/sda4" is a new physical volume of "16.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sda4
VG Name
PV Size 16.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID xFwMIy-oHve-MOZJ-ulq7-iUzI-OaC6-fyrWK3
使用新的物理卷来扩展 LVM 的vg_zendlinux(centos)
[root@localhost ~]# vgextend centos /dev/sda4
Volume group "centos" successfully extended
扩展 LVM 的逻辑卷 vg_zendlinux/lv_root(centos/root)
查看指令:lvdisplay
--- Logical volume ---
LV Path /dev/centos/swap
LV Name swap
VG Name centos
LV UUID G63387-gWCD-Nw3T-vQb6-W6zd-L4tY-x8VJuw
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-01-22 17:24:47 +0800
LV Status available
# open 2
LV Size 820.00 MiB
Current LE 205
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:1
--- Logical volume ---
LV Path /dev/centos/root
LV Name root
VG Name centos
LV UUID aUgoLI-DXHj-rC2N-3XFN-gd5r-6sWb-cdBEW4
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2018-01-22 17:24:48 +0800
LV Status available
# open 1
LV Size 14.66 GiB
Current LE 3754
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:0
执行扩展 :lvextend
[root@localhost ~]# lvextend /dev/centos/root /dev/sda4
Size of logical volume centos/root changed from 14.66 GiB (3754 extents) to 30.66 GiB (7849 extents).
Logical volume centos/root successfully resized.
调整逻辑卷文件系统的大小
查看:df -h
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 15G 8.3G 6.5G 57% / ##扩展前15G
/dev/sda1 497M 170M 328M 35% /boot
/dev/dm-3 10G 470M 9.6G 5% /var/lib/docker/devicemapper/mnt/020c202f5b9d5ab0e0cb0856ddb55fa9ebcd36a6f70ad322bdf9e016b477200d
/dev/dm-4 10G 133M 9.9G 2% /var/lib/docker/devicemapper/mnt/7982e525892b8bb5bb5d7aef3cb7a3058ef30e7489f41996a10eec2449480e44
/dev/dm-5 10G 563M 9.5G 6% /var/lib/docker/devicemapper/mnt/5a3873407b088e4b66821eb5855d6f4af07b7b2496da52065362e315fd35bb95
shm 64M 0 64M 0% /var/lib/docker/containers/acd6c0aa945b526d334adf1f2a6cee933a5e764cc00a9767316e55b1397d67f4/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/f2217919275ab29f99c52db543472ec70338c4e935d8c3a022034296340de6fa/mounts/shm
tmpfs 287M 0 287M 0% /run/user/0
==xfs的文件系统重新定义大小用如下命令:==
扩展命令:xfs_growfs /dev/centos/root(本命令只适用于xfs文件系统,可使用df -Th命令查看
)
[root@localhost ~]# xfs_growfs /dev/centos/root
meta-data=/dev/mapper/centos-root isize=256 agcount=9, agsize=436992 blks
= sectsz=512 attr=2, projid32bit=1
= crc=0 finobt=0 spinodes=0
data = bsize=4096 blocks=3844096, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=0
log =internal bsize=4096 blocks=2560, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 3844096 to 8037376
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 1.4G 0 1.4G 0% /dev
tmpfs 1.5G 0 1.5G 0% /dev/shm
tmpfs 1.5G 8.8M 1.4G 1% /run
tmpfs 1.5G 0 1.5G 0% /sys/fs/cgroup
/dev/mapper/centos-root 31G 8.3G 23G 27% / ##扩展前15G 目前31G 显示已扩展
/dev/sda1 497M 170M 328M 35% /boot
/dev/dm-3 10G 470M 9.6G 5% /var/lib/docker/devicemapper/mnt/020c202f5b9d5ab0e0cb0856ddb55fa9ebcd36a6f70ad322bdf9e016b477200d
/dev/dm-4 10G 133M 9.9G 2% /var/lib/docker/devicemapper/mnt/7982e525892b8bb5bb5d7aef3cb7a3058ef30e7489f41996a10eec2449480e44
/dev/dm-5 10G 563M 9.5G 6% /var/lib/docker/devicemapper/mnt/5a3873407b088e4b66821eb5855d6f4af07b7b2496da52065362e315fd35bb95
shm 64M 0 64M 0% /var/lib/docker/containers/acd6c0aa945b526d334adf1f2a6cee933a5e764cc00a9767316e55b1397d67f4/mounts/shm
shm 64M 0 64M 0% /var/lib/docker/containers/f2217919275ab29f99c52db543472ec70338c4e935d8c3a022034296340de6fa/mounts/shm
tmpfs 287M 0 287M 0% /run/user/0
另一种方法:之前第一次扩展时使用:
[root@zendlinux ~]# resize2fs /dev/vg_zendlinux/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg_zendlinux/lv_root is mounted on /; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/vg_zendlinux/lv_root to 3854336 (4k) blocks.
The filesystem on /dev/vg_zendlinux/lv_root is now 3854336 blocks long.
==此处可能会报错:==
==resize2fs: Bad magic number in super-block while trying to open /dev/centos/root==
==解决方法:==
==检查 /dev/centos/root 文件系统==
# mount |grep root
/dev/mapper/centos-root on / type xfs (rw,relatime,attr2,inode64,noquota)
==重新进行df -h查看挂载点,发现大小已经更改.==
完成。看看效果:
[root@localhost ~]# lvscan
ACTIVE '/dev/centos/swap' [820.00 MiB] inherit
ACTIVE '/dev/centos/root' [30.66 GiB] inherit
屏幕翻页快捷键
shift+PgUp 向前翻看,一般翻13页左右。
shift+PgDown 向后翻看,一般翻13页左右。
解压缩
tar -zxvf XX.tar.gz
unzip xxx.zip
拷贝/复制
cp -r A /B/
向另外服务器拷贝
#拷贝到node01节点
scp -r image-load.sh kubeadm-basic.images root@k8s-node01:/root/
#拷贝到node02节点
scp -r image-load.sh kubeadm-basic.images root@k8s-node02:/root/
删除
#删除空目录
rmdir MyDocuments
#删除非空目录
rm -rf MyDocuments/
时间问题
date 查看当前时间 安装时间同步插件yum install ntpdate 开启时间同步service ntpdate restart 设置时区:1)ntpdate time.nist.gov 与一个已知的时间服务器同步 rm -rf /etc/localtime 删除本地时间 ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 设置时区为上海
2)通过tzselect命令来修改时区 执行tzselect命令 –> 选择Asia –> 选择China –> 选择Beijing — 选择yes , 执行完tzselect命令选择时区后,时区并没有更改,将TZ=‘Asia/Shanghai’ ; export TZ 添加到/etc/profile文 件中去,然后退出并重新登陆即可。
虚拟机的内存不能忽视
nacos在启动集群是 从官网下载的启动脚本默认的启动参数为:
-Xms2g -Xmx2g -Xmn1g
因此如果启动3个实例 至少需要3*2g的内存,原先一直起不来的原因就是内存不够
测试环境可以考虑如下配置,启动正常:
-Xms258m -Xmx1g -Xmn512m
字符问题
$’r’: command not found
编辑文件
vi xxx.sh
:set fileformart=unix
:wq
Tomcat 启动
yum设置错误资源后处理
cd /etc/yum.repos.d
ls
#查看对应错误的资源文件
vi XXX
# 删除对应文件
rm -rf xxx
# 清理 yum仓库文件
yum clean all
yum详解
一般情况下 我们很多的安装是通过yum直接链接互联网进行远程资源库下载和安装,有时候有些系统是不具备网络环境的,这个时候就需要把一些资源下载下来进行离线安装。以git为例
yum -y install git
yumdownloader git
## 查找yum路径
whereis yum
yum: /usr/bin/yum /etc/yum /etc/yum.conf /usr/share/man/man8/yum.8
# 查看配置信息 cachedir就是存放路径
cat /etc/yum.conf
[root@k8s-node01 tools]# cat /etc/yum.conf
[main]
cachedir=/var/cache/yum/$basearch/$releasever
keepcache=0
debuglevel=2
logfile=/var/log/yum.log
exactarch=1
obsoletes=1
gpgcheck=1
plugins=1
installonly_limit=5
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release
# This is the default, if you make this bigger yum won't see if the metadata
# is newer on the remote and so you'll "gain" the bandwidth of not having to
# download the new metadata and "pay" for it by yum not having correct
# information.
# It is esp. important, to have correct metadata, for distributions like
# Fedora which don't keep old packages around. If you don't like this checking
# interupting your command line usage, it's much better to have something
# manually check the metadata once an hour (yum-updatesd will do this).
# metadata_expire=90m
# PUT YOUR REPOS HERE OR IN separate files named file.repo
# in /etc/yum.repos.d
## 可以直接指定下载路径downloaddir
yumdownloader git --downloaddir=/var/tools/
# 进入/var/tools/ 路径执行rpm
rpm -ivh *.rpm --force --nodeps
## 查看git版本 已正常显示
git --version
git version 1.8.3.1
mysql
mysql 离线安装 linux
下载地址:https://downloads.mysql.com/archives/community/
下载对应版本
解压缩
# 创建mysql用户 正式环境尽量不要直接用root
# 查找mysql
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
# 添加用户
groupadd mysql
useradd -r -g mysql mysql
tar -xvf mysql-8.0.27-linux-glibc2.12-x86_64.tar.xz
# 将解压后的文件夹移动到 /usr/local/mysql
mv mysql-8.0.27-linux-glibc2.12-x86_64 /usr/local/mysql
#创建DATA文件
mkdir /usr/local/mysql/data
#设置mysql用户的目录权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
## 编译及初始化 务必记住初始化输出日志末尾的密码(数据库管理员临时密码:K+*rsZ_xK05-)
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
2022-02-15T01:12:37.902301Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2022-02-15T01:12:37.902410Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.27) initializing of server in progress as process 47543
2022-02-15T01:12:37.912088Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-02-15T01:12:38.514486Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-02-15T01:12:39.497003Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1 is enabled for channel mysql_main
2022-02-15T01:12:39.497138Z 0 [Warning] [MY-013746] [Server] A deprecated TLS version TLSv1.1 is enabled for channel mysql_main
2022-02-15T01:12:39.595973Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: K+*rsZ_xK05-
配置
编辑配置文件my.cnf,添加配置如下
vim /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
default-character-set=utf8
lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效:
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别;
启动
/usr/local/mysql/support-files/mysql.server start
启动报错
#启动报错
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
异常信息
2022-02-15T01:42:13.435758Z 1 [ERROR] [MY-011087] [Server] Different lower_case_table_names settings for server ('1') and data dictionary ('0').
2022-02-15T01:42:13.435970Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2022-02-15T01:42:13.436181Z 0 [ERROR] [MY-010119] [Server] Aborting
2022-02-15T01:42:13.955250Z 0 [System] [MY-010910] [Server] /usr/local/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.27) MySQL Community Server - GPL.
解决
百度之后发现是8.0之后的坑,如果要设置lower_case_table_names,必须在初始化的时候设置,否则无法修改
(1)删除data下的文件
rm -rf /usr/local/mysql/data
(2)在配置文件中[mysqld]下添加lower_case_table_names = 1
[mysqld]
datadir=/usr/local/mysql/data
port=3307
max_connections=400
innodb_file_per_table=1
character_set_server=UTF8MB4
socket=/usr/local/mysql/data/mysql.sock # socket文件
symbolic-links=0
log-error=/usr/local/mysql/data/mysqld.log #错误日志
pid-file=/usr/local/mysql/data/mysqld.pid #pid文件
lower_case_table_names = 1
[mysql]
socket=/usr/local/mysql/data/mysql.sock
[mysqldump]
socket=/usr/local/mysql/data/mysql.sock
(3)执行初始化命令
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --lower-case-table-names=1
(4)重新启动
#添加软连接
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
# 启动服务
service mysql restart
# 登录
mysql -uroot -p
# 修改密码
# 8.0以下
set password for root@localhost = password('123456');
# 8.0以上 我这边安装的是8。0.27(select version();)
alter user 'root'@'localhost' identified by '123456';
# 查看lower_case_table_names
show variables like '%lower_case_table_names%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_table_names | 1 |
+------------------------+-------+
1 row in set (0.00 sec)
添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
mysql -uroot -p
# 修改密码
# 8.0以下
set password for root@localhost = password('qiMAK22Hx%EmJ63i');
# 8.0以上 我这边安装的是8。0.27(select version();)
alter user 'root'@'localhost' identified by 'qiMAK22Hx%EmJ63i';
show variables like '%lower_case_table_names%';
开放远程链接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
查询端口
show global variables like ‘port’;
netstat -nltp | grep mysqld
netstat -nltp | grep mysqld
tcp6 0 0 :::33060 :::* LISTEN 67794/mysqld
tcp6 0 0 :::3307 :::* LISTEN 67794/mysqld
授权
# 授权目录所有者执行的权限
chmod u+x XXX.somefile
引用
#它的功能是为某一个文件或目录在另外一个位置建立一个同步的链接,类似Windows下的超级链接。
#将local下的linkwork 建立与/usr/local/linux/work的链接
ln -sf /usr/local/linux/work /local/linkwork
# 删除链接
rm -rf symbolic_name 注意不是rm -rf symbolic_name/
rm -rf /local/linkwork
原文始发于微信公众号(云户):Linux常用脚本补充mysql和yum离线安装等内容
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/25953.html