GVKun编程网logo

Centos 7搭KVM

3

如果您对Centos7搭KVM感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Centos7搭KVM的各种细节,此外还有关于CentOS6升级到CentOS7、CentOS6和CentOS7防火

如果您对Centos 7搭KVM感兴趣,那么这篇文章一定是您不可错过的。我们将详细讲解Centos 7搭KVM的各种细节,此外还有关于CentOS 6 升级到 CentOS 7、CentOS 6 和 CentOS 7 防火墙的关闭、CentOS 6, CentOS 7 安装mysql数据库、CentOS 6.6 系统升级到 CentOS 6.7的实用技巧。

本文目录一览:

Centos 7搭KVM

Centos 7搭KVM

KVM简介及虚拟化技术简介

说道KVM,那必须先提虚拟化技术,我网上查的资料,貌似大家对虚拟化的一些术语没有达成统一的标准,如:仿真、完全虚拟化、超虚拟化、超虚拟化、操作系统级虚拟化。
其实我觉得这些术语没有统一,也仅仅是因为角度的问题。也或许是理解不深,所以我这说的也仅仅是个人理解,可能也是理解不够深,仅供参考。
而单单连虚拟化这词,在不同人,不同层面上理解,都不一样。

神级别的虚拟化(虚拟化的起源)

先站住计算机科学的层面来看,也就是站在神级别的角度去看(仅仅为了说得生动而已,并非神化科学),站在神级别的角度来看什么是虚拟化,准确来说是虚拟化的起源:

它的存在已经超过 50多年了。虚拟化技术最早用在包括 IBM的7044、麻省理工学院(MIT)的 CTSS(Compatible Time Sharing System)以及曼彻斯特大学的 Atlas 项目(世界上最早的超级计算机之一),这些都是请求页面调度和监管进程调用的先驱。

硬件虚拟化

IBM 早在 20 世纪 60 年代开发 System/360™ Model 67 大型机时就认识到了虚拟化的重要性。Model 67 通过 VMM(Virtual Machine Monitor)对所有的硬件接口都进行了虚拟化。在早期计算中,操作系统被称为supervisor。能够在其他操作系统上运行的操作系统被称为 hypervisor(这个术语是在 20 世纪 70 年代出现的)。
VMM 可以直接在底层硬件上运行,允许运行多个虚拟机(VM)。每个 VM 都可以运行一个自己私有操作系统的实例 —— 在早些时候,这称为 CMS(或 Conversational Monitor System)。之后 VM 继续发展,现在您可以在 System z9™ 大型机上发现 VM。这提供了很好的向后兼容性,甚至是对 System/360 产品线的兼容性。

这里,这个hypervisor术语有点重要,要考的。在早期计算中,操作系统被称为supervisor。能够在其他操作系统上运行的操作系统被称为 hypervisor。

处理器虚拟化

虚拟化早期的另外一种用法(在本例中是对处理器的仿真)是 P-code(或伪码)机。P-code 是一种机器语言,运行于虚拟机而不是实际硬件。P-code 早在 20 世纪 70 年代就已在加州大学圣地亚哥分校(UCSD)Pascal 系统上颇有名气了,它将 Pascal 程序编译成 P-code,然后在一个 P-code 虚拟机上运行。这就使 P-code 程序具有了高度的可移植性,而且,只要有可用的 P-code 虚拟机,P-code 程序就可以运行。
20 世纪 60 年代对 BCPL(Basic Combined Programming Language)的设计中也采用了相同的概念,C 语言即由 BCPL 发展而来。在这种用法中,编译器会将 BCPL 代码编译成称为 O-code 的中间机器代码。接下来的第二个步骤是将 O-code 编译成目标机器的原始语言。现代编译器所使用的这种模型为将编译器移植到新目标体系结构上提供了很大的灵活性(通过一种中间语言将前端和后端分隔开来)。

soga,原来C的设计也是有这么一方面的考虑。-0-这虚拟化概念牵涉真深。

指令集虚拟化

虚拟化最新的发展称为指令集虚拟化,或者二进制转换。在这种模型中,虚拟指令集被转换成底层硬件的物理指令集,这个过程通常都是动态的。当代码执行时,就会对代码的某个段进行转换。如果出现分支情况,就会导入新代码集并进行转换。这使它与缓存操作非常类似,后者是将指令块从内存移动到本地快速缓存中执行。
这种模型最近在 TransMeta 设计的 Crusoe 中央处理单元(cpu)中得到了使用。二进制转换由 Code Morphing 的专利技术实现。类似的一个例子是完全虚拟化解决方案通过运行时代码扫描来查找和重定向特权指令(用来解决特定处理器指令集的一些问题)。

这么一说,好像是Java的JIT(just-in-time) 即时编译

当虚拟机发现某个方法或代码块运行特别频繁时,就会把这些代码认定为“Hot Spot Code”(热点代码),为了提高热点代码的执行效率,在运行时,虚拟机将会把这些代码编译成与本地平台相关的机器码,并进行各层次的优化,完成这项任务的正是 JIT 编译器。

人级别的虚拟化(大家常说的虚拟化)

而这个层面,虚拟化是:

虚拟化是指在同一台物理服务器上模拟多台虚拟机的能力,且每台虚拟机在逻辑上拥有独立的cpu、内存、硬盘和网络接口等。虚拟化可以提高硬件资源的利用率,使多个应用能隔离的运行在同一台物理机上。

站在广义的虚拟化来看(知道我为什么上面用神级别虚拟化来代替吧,我真不知道比广义还广的应该叫啥,知道的同学可以帮忙科普下):
虚拟化分为硬件层面的虚拟化软件层面的虚拟化

硬件层面的虚拟化

硬件层面的虚拟化,我发现好像很多人是站在这个角度去看的,所以才把这里面的虚拟化技术分为:仿真、完全虚拟化、超虚拟化、超虚拟化、操作系统级虚拟化(这个应该属于软件层面的虚拟化,放在这里方便统一记忆)。

在硬件虚拟化的层面,现代虚拟化技术通常是全虚拟和半虚拟的混合体。常见的硬件虚拟化技术例如VMWare、Xen和KVM都同时支持全虚拟化和半虚拟化。硬件虚拟化方式提供的虚拟机,都独立的运行着一个完整的操作系统,这样在同一台物理宿主机上存在大量相同或者相似的进程和内存页,从而导致较大的性能损耗(比如:宿主机操作系统是Centos,使用KVM生成的多个虚拟机,且在每个虚拟机中都运行Windows操作系统和相同的QQ程序,这样宿主机的性能必然产生较大损耗)。因此,硬件虚拟化也被称为重量级虚拟化,在同一宿主机上能够同时运行的虚拟机数量相当有限。

这层面虚拟化项目有:

项目 类型 许可证 一句话:硬件层面的虚拟化,就是在硬件上面模拟出N套硬件出来,N套硬件上可以装不同的系统,然后不同的虚拟化技术就是层次不一样,从而造成性能、便利等有所区别。

软件层面的虚拟化

而站在这个角度里看,有些人都把上述的硬件层面的虚拟机化统称为完全虚拟化(这个概念跟上面的硬件层面的虚拟化中的“完全虚拟化”冲突了,可能会有困惑,理解角度不一样看到就不一样,这或许就没那么困惑)。

指在同物理服务器上提供多个隔离的虚拟运行环境,也被称为容器技术。在软件虚拟化的层面,同一宿主机上的所有虚拟机(又称Container)共享宿主机的操作系统实例,不存在由于运行多个操作系统实例所造成的性能损耗(比如:宿主机的操作系统为Centos,通过软件虚拟化技术生成多个Container,且每个Container都运行着QQ程序,由于它们共享同一个宿主机Centos操作系统,所有Container中QQ程序的进程在Centos中只有一个)。因此,软件虚拟化也被称为轻量级虚拟化,在同一宿主机上能够同时运行的虚拟运行环境数量比较宽松。以Solaris操作系统上的Container为例,一个Solaris操作系统的实例理论上可以支持多达8000个Container(实际能够运行的Container数量取决于系统资源和负载)。与此类似,Linux操作系统上的LXC也可以轻松地在同一宿主机上同时支持数量可观的虚拟运行环境。

LXC技术就是属于这层次上面,对应的项目有:Linux-VServer、OpenVZ和另外一个鼎鼎大名的Docker

虚拟化的演变和发展

到了这个层次,虚拟化应该诞生出行业的区别。诞生出的行业有:云计算、大数据

云计算

比较有代表性就是亚马逊AWS和开源项目Openstack

大数据

比较有代表性的是Hadoop

这里就不展开的说,再展开或许就有点跑偏题。
另外,虚拟化也可以将多台计算机组合成一台计算机的形式呈现出来。这通常称为服务器聚合网格计算

安装步骤

准备工作

  1. 装centos7时,SOFTWARE SELECTION这选项选择Virtualization Host
  2. 进入系统后,修改host
hostnamectl --static set-hostname cdh-host.c7.jevoncode.com
  1. 关闭SELinux
vim /etc/selinux/config
将第一个enable改为disable
  1. 关闭防火墙
systemctl stop firewalld.service
systemctl mask firewalld.service
  1. 新建桥接的网卡,假设现有以太网的网卡是eth0,则改为以下
进入目录: cd /etc/sysconfig/network-scripts/
TYPE="Ethernet"
BOOTPROTO="none"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="eth0"
UUID="0cd981cd-8d6c-4802-a185-c64770110711"
DEVICE="eth0"
ONBOOT="yes"
BRIDGE="br0"

其中BOOTPROTO、BRIDGE、ONBOOT是需要改之外,其他都是系统安装时的样子即可

  1. 在当前目录新建配置ifcfg-br0(复制ifcfg-eth0改名为ifcfg-br0),内容如下:
TYPE="Bridge"
BOOTPROTO="static"
DEFROUTE="yes"
PEERDNS="yes"
PEERROUTES="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="br0"
UUID="0cd981cd-8d6c-4802-a185-c64770110711"
DEVICE="br0"
ONBOOT="yes"
IPADDR=192.168.1.108
PREFIX=16
GATEWAY=192.16.1.1

其中TYPE、BOOTPROTO、BRIDGE、ONBOOT、NAME、DEVICE、IPADDR、PREFIX、GATEWAY是需要改之外,其他都是复制ifcfg-eth0的即可

  1. 上述两个网卡我需说一下,此时只能启动br0,如果ifup eth0,它会提示
device p4p1 is already a member of a bridge; can't enslave it to bridge br0

也就只能ifup br0,所以br0的IPADDR最好就是设置之前eth0获取的ip,另外gateway的查询是: netstat -rn 或 route -n

netstat -rn 
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         192.168.1.1      0.0.0.0         UG        0 0          0 br0
192.168.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br0
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

(以0.0.0.0开始的行的Gateway是默认网关)
DNS的查询则是

cat /etc/resolv.conf 

注,需查看自己cpu支不支持虚拟化:

egrep '(vmx|svm)' /proc/cpuinfo

有vmx(Intel)或svm(AMD)字样,就说明cpu的支持的。

安装kvm

当上面准备工作都做好,就可以安装kvm了

  1. 安装KVM程序包及其依赖
yum install qemu-kvm libvirt virt-install bridge-utils -y

kvm相关程序包及其作用:

安装包 作用 函数的中间件文件支持工具功能
  • 验证安装结果,此命令有输出说明KVM模块被正确加载
  • lsmod | grep kvm
    1. 开启kvm服务,并且设置其开机自动启动
    systemctl start libvirtd
    systemctl enable libvirtd
    1. 两个方式查看kvm服务运行状况
    systemctl status libvirtd
    systemctl is-enabled libvirtd

    新建虚拟机

    1. 新建虚拟机命令:
    virt-install \
    --virt-type=kvm \
    --name=centos7A \
    --vcpus=2 \
    --memory=4096 \
    --location=/root/CentOS-7-x86_64-DVD-1708.iso \
    --disk path=/home/vms/centos7A.qcow2,size=40,format=qcow2 \
    --network bridge=br0 \
    --graphics none \
    --extra-args='console=ttyS0' \
    --force
    1. 安装可过程是命令式安装centos的,此过程跟图像界面很类似,这就略过了

    虚拟机常用命令

    1. 退出链接虚拟机:ctrl+]
    2. 查看虚拟机列表
    virsh list --all
    1. 链接虚拟机
    virsh console centos7A
    1. 启动虚拟机
    virsh start centos7C
    1. 删除虚拟机
    virsh undefine centos7A
    rm -rf /home/vms/centos7A.qcow2

    虚拟机复制

    KVM的虚拟机复制分两种情况:

    本机复制

    1. 关闭虚拟机
    virsh shutdown centos7A
    1. 查看虚拟机镜像文件在哪
    virsh edit centos7A 

    以下标签就是文件的路径

    ``
    3.将centos7A复制为centos7B

    virt-clone -o  centos7A -n centos7B -f /home/vms/centos7B.qcow2

    4.即可链接虚拟机centos7B了

    非本机复制

    这目的就是完成类似用VirtualBox的导出功能,导出来给其他机子上使用

    1. 创建新虚拟机centos7B的配置文件
    virsh dumpxml centos7A > /etc/libvirt/qemu/centos7B.xml 
    1. 进入centos7A镜像的目录/home/vms/,复制镜像
     cp centos7A.qcow2 centos7B.qcow2
    1. 用vim修改配置文件centos7B.xml,修改name,uuid,disk文件位置,mac地址
    2. 通过新虚拟机的配置文件,定义一个虚拟机:
    virsh define /etc/libvirt/qemu/centos7B.xml

    注:uuid可以网上找个工具生成,但mac地址一定是新物理机有的mac地址,如果是本机复制,那就不用改mac地址

    TroubleShoot

    1. 非本机复制时,define一个虚拟机时报:
    错误:从 /etc/libvirt/qemu/centos7C.xml 定义域失败
    错误:XML error: expected unicast mac address,found multicast '23:F6:7F:2B:67:5D'

    那是因为所造的mac地址是组播地址,要非组播的mac地址才行,开头大于24即可

    错误:开始域 centos7C 失败
    错误:unsupported configuration: guest and host cpu are not compatible: Host cpu does not provide required features: x2apic,hypervisor,rdseed,adx,smap,3dNowprefetch; try using 'broadwell-noTSX' cpu model

    CentOS 6 升级到 CentOS 7

    CentOS 6 升级到 CentOS 7

    注意

    非必要情况,请使用重新安装系统的方式升级,原因如下:

    1. 并非所有的系统都能顺利从 6 升级到 7,安装的软件越少,升级成功的可能性越大;
    2. 只支持 6.5 及以上系统升级到不高于 7.2 系统;
    3. 升级的耗时完全不比重新安装少,绝大多数情况下会耗费更长的时间和更多精力;
    4. 升级完成后处理各种依赖是一个非常头大的问题。

    本人在同一天升级了两台电脑,一个成功一个失败。成功的那台电脑额外花了一天时间处理各种依赖和问题,失败的电脑半小时装好系统和必备软件,用得爽歪歪。所以如非必要,建议采用备份数据后直接重装系统的方式。

    操作

    通过软件方式从 6 升级到 7,请参考下面的步骤:

    1. 升级当前系统到最新版本:yum update -y

    2. 安装旧版 openscap: yum remove -y openscap && yum install -y http://dev.centos.org/centos/6/upg/x86_64/Packages/openscap-1.0.8-1.0.1.el6.centos.x86_64.rpm

    3. 添加 upgradetool 源:

      cat <<EOF >/etc/yum.repos.d/upgradetool.repo
      [upgrade]
      name=CentOS-$releasever - Upgrade Tool
      baseurl=http://dev.centos.org/centos/6/upg/x86_64/
      gpgcheck=1
      enabled=1
      gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
      EOF
      
    4. 安装升级工具:yum install -y redhat-upgrade-tool preupgrade-assistant preupgrade-assistant-contents

    5. 执行升级可行性分析:preupg -l,该命令会耗费几分钟到几十分钟时间。如果出现 preupg: error: [Errno 2] No such file or directory: ''/root/preupgrade/result.html'' 的错误,请参考第一步安装 openscap 的旧版;

    6. 使用清华大学的 centos-vault 源安装 7.2 版本:centos-upgrade-tool-cli --network 7 --instrepo=https://mirrors.tuna.tsinghua.edu.cn/centos-vault/7.2.1511/os/x86_64/

      ** 注意:**7.2 是支持升级的最高版本,升级其他版本将会出现 Downloading failed: invalid data in .treeinfo: No section: ''checksums'' 的错误提示;

    7. 如果升级成功,用 reboot 命令重启系统;如果提示 The requested URL returned error: 404 Not Found 等错误,基本上说明当前系统不支持直接升级。果断采用重装系统的正道吧,少年!

    8. 系统重启后,有可能因为依赖库确实导致 ssh 无法启动,grep 不能正常使用等问题。基本功底够好的手动排查,然后一个个问题解决;搞不懂错误原因或者觉得处理麻烦的,备份数据后重装系统吧!

    9. 使用 rpm -qa | grep el6 查看系统上残留的软件包。如果能手动清理掉,让系统 update 无障碍,耐心一个个处理掉。如果觉得依赖太麻烦或者搞不定,备份数据后重装系统吧!

    参考

    1. https://blog.51cto.com/moerjinrong/2340656

    CentOS 6 和 CentOS 7 防火墙的关闭

    CentOS 6 和 CentOS 7 防火墙的关闭

    CentOS6.5 查看防火墙的状态:

    [linuxidc@localhost ~]$service iptable status   显示结果: [linuxidc@localhost ~]$service iptable status Redirecting to /bin/systemctl status iptable.service

    ● iptable.service Loaded: not-found (Reason: No such file or directory) Active: inactive (dead) -- 表示防火墙已经关闭 CentOS 6.5 关闭防火墙

    [root@localhost ~]#servcie iptables stop -- 临时关闭防火墙 [root@localhost ~]#chkconfig iptables off -- 永久关闭防火墙

    CentOS 7.2 关闭防火墙

    CentOS 7.0 默认使用的是 firewall 作为防火墙,这里改为 iptables 防火墙步骤。 firewall-cmd --state #查看默认防火墙状态(关闭后显示 notrunning,开启后显示 running)

    [root@localhost ~]#firewall-cmd --state not running 检查防火墙的状态:

    从 centos7 开始使用 systemctl 来管理服务和程序,包括了 service 和 chkconfig。

    [root@localhost ~]#systemctl list-unit-files|grep firewalld.service -- 防火墙处于关闭状态 firewalld.service disabled   或者

    [root@localhost ~]#systemctl status firewalld.service ● firewalld.service - firewalld - dynamic firewall daemon Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled) Active: inactive (dead) 关闭防火墙:

    systemctl stop firewalld.service #停止 firewall systemctl disable firewalld.service #禁止 firewall 开机启动

    [root@localhost ~]#systemctl stop firewalld.service [root@localhost ~]#systemctl disable firewalld.service

    启动一个服务:systemctl start firewalld.service 关闭一个服务:systemctl stop firewalld.service 重启一个服务:systemctl restart firewalld.service 显示一个服务的状态:systemctl status firewalld.service 在开机时启用一个服务:systemctl enable firewalld.service 在开机时禁用一个服务:systemctl disable firewalld.service 查看服务是否开机启动:systemctl is-enabled firewalld.service;echo $? 查看已启动的服务列表:systemctl list-unit-files|grep enabled Centos 7 firewall 命令: 查看已经开放的端口:

    firewall-cmd --list-ports 开启端口

    firewall-cmd --zone=public --add-port=80/tcp --permanent 命令含义:

    –zone #作用域

    –add-port=80/tcp #添加端口,格式为:端口 / 通讯协议

    –permanent #永久生效,没有此参数重启后失效

    重启防火墙

    firewall-cmd --reload #重启 firewall systemctl stop firewalld.service #停止 firewall systemctl disable firewalld.service #禁止 firewall 开机启动 firewall-cmd --state #查看默认防火墙状态(关闭后显示 notrunning,开启后显示 running) CentOS 7 以下版本 iptables 命令 如要开放 80,22,8080 端口,输入以下命令即可

    /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 然后保存:

    /etc/rc.d/init.d/iptables save 查看打开的端口:

    /etc/init.d/iptables status 关闭防火墙 1) 永久性生效,重启后不会复原

    开启: chkconfig iptables on

    关闭: chkconfig iptables off

    2) 即时生效,重启后复原

    开启: service iptables start

    关闭: service iptables stop

    查看防火墙状态: service iptables status

    下面说下 CentOS7 和 6 的默认防火墙的区别

    CentOS 7 默认使用的是 firewall 作为防火墙,使用 iptables 必须重新设置一下

    1、直接关闭防火墙

    systemctl stop firewalld.service #停止 firewall

    systemctl disable firewalld.service #禁止 firewall 开机启动

    2、设置 iptables service

    yum -y install iptables-services

    如果要修改防火墙配置,如增加防火墙端口 3306

    vi /etc/sysconfig/iptables

    增加规则

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

    保存退出后

    systemctl restart iptables.service #重启防火墙使配置生效

    systemctl enable iptables.service #设置防火墙开机启动

    最后重启系统使设置生效即可。

    systemctl start iptables.service #打开防火墙

    systemctl stop iptables.service #关闭防火墙

    解决主机不能访问虚拟机 CentOS 中的站点 前阵子在虚拟机上装好了 CentOS6.2,并配好了 apache+php+mysql,但是本机就是无法访问。一直就没去折腾了。

    具体情况如下

    1. 本机能 ping 通虚拟机
    2. 虚拟机也能 ping 通本机 3. 虚拟机能访问自己的 web 4. 本机无法访问虚拟机的 web

    后来发现是防火墙将 80 端口屏蔽了的缘故。

    检查是不是服务器的 80 端口被防火墙堵了,可以通过命令:telnet server_ip 80 来测试。

    解决方法如下: /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT 然后保存: /etc/rc.d/init.d/iptables save 重启防火墙 /etc/init.d/iptables restart

    CentOS 防火墙的关闭,关闭其服务即可: 查看 CentOS 防火墙信息:/etc/init.d/iptables status 关闭 CentOS 防火墙服务:/etc/init.d/iptables stop

    CentOS 6, CentOS 7 安装mysql数据库

    CentOS 6, CentOS 7 安装mysql数据库

    #!/bin/sh
    # CentOs 6
    #使用sohu镜像,速度快
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-server-5.6.35-1.el6.x86_64.rpm
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-client-5.6.35-1.el6.x86_64.rpm
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-shared-5.6.35-1.el6.x86_64.rpm
    #删除默认安装包
    rpm -qa| grep mysql-libs | xargs rpm -e --nodeps
    #安装依赖包
    yum -y install numactl
    rpm -ivh MySQL-shared-5.6.35-1.el6.x86_64.rpm
    rpm -ivh MySQL-client-5.6.35-1.el6.x86_64.rpm 
    rpm -ivh MySQL-server-5.6.35-1.el6.x86_64.rpm
    
    #获取默认root密码
    sqlpasswd=`cat /root/.mysql_secret | awk -F''): '' {''print $2''}`
    echo "MySQL root passwd: $sqlpasswd"
    #设置数据库服务端编码为utf8
    echo character_set_server=utf8 >> /usr/my.cnf
    #重启数据库
    service mysql restart
    #!/bin/sh
    # CentOS 7
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-server-5.6.35-1.el7.x86_64.rpm
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-client-5.6.35-1.el7.x86_64.rpm
    wget http://mirrors.sohu.com/mysql/MySQL-5.6/MySQL-shared-5.6.35-1.el7.x86_64.rpm
    rpm -ivh MySQL-shared-5.6.35-1.el7.x86_64.rpm
    rpm -ivh MySQL-client-5.6.35-1.el7.x86_64.rpm 
    rpm -ivh MySQL-server-5.6.35-1.el7.x86_64.rpm
    
    #获取默认root密码
    sqlpasswd=`cat /root/.mysql_secret | awk -F''): '' {''print $2''}`
    echo "MySQL root passwd: $sqlpasswd"
    
    #设置数据库服务端编码为utf8
    echo character_set_server=utf8 >> /usr/my.cnf
    SET PASSWORD FOR ''root''@''localhost''=PASSWORD(''newpass'');

     

    CentOS 6.6 系统升级到 CentOS 6.7

    CentOS 6.6 系统升级到 CentOS 6.7

    1、利用 Centos6.7 ISO 镜像挂载为本地镜像

    创建一个挂载目录 CentOS 6.6 系统升级到 CentOS 6.7

    mkdir /mnt/data

    2、挂载镜像(远程镜像)

    mount -t nfs 172.16.2.100://iso /mnt/data

    3、yum 源配置文件

    vim CentOS-Media.repo
    
    [c6-media]
    name=CentOS-$releasever - Media
    baseurl=file:///mnt/data
    gpgcheck=1
    enabled=1
    gpgkey=file:///mnt/data/RPM-GPG-KEY-CentOS-6

     4、清除 yum 缓存进行更新

    yum clean all
    yum makecache

    5、系统更新:

    yum -y update
    (如有报错看依赖进行安装,或者依赖版本问题需要重新安装)
    
    rpm -e kernel-2.6.32-504.el6.x86_64
    rpm -e kernel-devel-2.6.32-504.el6.x86_64
    
    重启:
    reboot

    可能会遇到的依赖提示:

    rpm -e libreport
    yum remove libreport
    yum -y install libreport
    yum remove libreport-filesystem
    yum -y install libreport

     

    关于Centos 7搭KVM的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于CentOS 6 升级到 CentOS 7、CentOS 6 和 CentOS 7 防火墙的关闭、CentOS 6, CentOS 7 安装mysql数据库、CentOS 6.6 系统升级到 CentOS 6.7等相关内容,可以在本站寻找。

    本文标签: