【DBA手记】详解克隆复制一个VMware虚拟机后有哪些坑?还要做哪些修改操作?(且linux下安装了MySQL)
author: superSong
背景:
今天要克隆一台linux虚拟机,复现一个问题,做测试用,每当这时,我就会找出来之前总结的一些虚拟机的注意事项和修改方法,现在我把这些经验再整理一下记录到这里。
我一般都安装配置好一台虚拟机,各种软件及环境都安装配置好,保存成副本,当需要时,就不用再次安装linux,安装mysql了,直接加载上就成一台新虚拟机了,只要稍作修改就可以了。
当我们克隆复制一台虚拟机后,会有一些配置与原来的有冲突,在后期使用中,会遇到各种样的问题,要做的一些修改整理如下
- 环境
以CentOS 7.6 为例
vmware版本为 VMware Workstation 15 Pro(12 Pro)
Mysql 5.7 - 简述
本例是把原来报存的虚拟机副本node1 修改成node6
有2处uuid,要区分,一处是linux的,一处是mysql的
记得在早期的版本下,还会有少许差异
一 . VMware修改:
- 在加载虚拟机副本时,
步骤:在vmware主页面 文件–> 打开–>选择虚拟机副本文件 如"CentOS7.6.vmx"
这里会弹出一个窗口,要选“我要复制虚拟机”,不要选“我要移动虚拟机” - 生成新的mac地址 不然会有mac地址冲突
步骤:关闭虚拟机,在vmware主页面–>虚拟机–>设置–> 网络适配器–>高级 --> mac地址 点“生成”
二 . CentOS(Linux)修改:
修改网卡配置
vim /etc/sysconfig/network-scripts/ifcfg-ens33
- 修改Linux的uuid
• [root@node1 ~]## uuidgen ens33 #先用 命令uuidgen ens33生成新的uuid(ens33是网卡名)
bf1a7252-73ba-46e5-aa08-a0a92a99c75b
- 修改为静态IP模式
BOOTPROTO=static # 一般都是选择使用静态IP - 修改ip地址
- 示例如下:
[root@node1 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static # 修改为静态IP
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bf1a7252-73ba-46e5-aa08-a0a92a99c75b # 修改uuid
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.136.26 # 修改ip地址
NETMASK=255.255.255.0
GATEWAY=192.168.136.2
DNS1=192.168.136.2
DNS2=8.8.8.8
- 修改/etc/hostname
• vim /etc/hostname #原来是node1,改为node6
- 修改主机名 [root@node1 ~]# hostnamectl set-hostname node6 然后重启 建议关闭后,再启动 (不要reboot)
• [root@node1 ~]# shutdown -h now
三. MySQL修改:
- 如果还安装了MySQL,那么还需要修改mysql的server-auto.cnf
单机下还好,这个问题一般会发生在mysql做主从复制时,报错为主和从库的uuid相同了,如下:
Last_IO_Error:…because master and slave have equal MySQL server UUIDs; - 自动生成mysql新的server-uuid
[root@node1 ~]# /etc/init.d/mysql.server stop # 关闭mysql
[root@node1 ~]# cat /data/mysql/data/auto.cnf # 看下原来的server-uuid
[auto]
server-uuid=7d3b41ab-6c09-11ee-a91f-005056342ae7
[root@node1 ~]# mv /data/mysql/data/auto.cnf /data/mysql/data/auto.cnf.old # 进入数据目录 移走原来的并备份,相当于删除了原来的
[root@node1 ~]# /etc/init.d/mysql.server start # 启动mysql
Starting MySQL.. SUCCESS!
[root@node1 ~]# cat /data/mysql/data/auto.cnf # 看,已自动生成新的server-uuid
[auto]
server-uuid=c9fdabd3-0e9d-11ef-87c8-0050562520ec
附录: 修改后的配置信息
[root@node6 ~]# cat /etc/hostname
node6
[root@node6 ~]# cat /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=bf1a7252-73ba-46e5-aa08-a0a92a99c75b
DEVICE=ens33
ONBOOT=yes
IPADDR=192.168.136.26
NETMASK=255.255.255.0
GATEWAY=192.168.136.2
DNS1=192.168.136.2
DNS2=8.8.8.8
[root@node6 ~]# cat /data/mysql/data/auto.cnf
[auto]
server-uuid=c9fdabd3-0e9d-11ef-87c8-0050562520ec
[root@node6 ~]#
[root@node6 ~]# cat /data/mysql/data/auto.cnf.old
[auto]
server-uuid=7d3b41ab-6c09-11ee-a91f-005056342ae7
[root@node6 ~]#
[root@node6 ~]# ps aux |grep mysql
root 8901 0.0 0.0 112724 988 pts/0 R+ 16:59 0:00 grep --color=auto mysql
[root@node6 ~]#
[root@node6 ~]# /etc/init.d/mysql.server start
Starting MySQL.Logging to '/data/mysql/data/node6.err'.
. SUCCESS!
[root@node6 ~]#
[root@node6 ~]# ps aux |grep mysql
root 8918 0.2 0.0 113312 1652 pts/0 S 17:00 0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql/data --pid-file=/data/mysql/data/node6.pid
mysql 9177 15.6 6.1 1122108 178680 pts/0 Sl 17:00 0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=node6.err --pid-file=/data/mysql/data/node6.pid --port=3306
root 9209 0.0 0.0 112724 988 pts/0 R+ 17:00 0:00 grep --color=auto mysql
[root@node6 ~]#
[root@node6 ~]# ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.136.26 netmask 255.255.255.0 broadcast 192.168.136.255
inet6 fe80::250:56ff:fe25:20ec prefixlen 64 scopeid 0x20<link>
ether 00:50:56:25:20:ec txqueuelen 1000 (Ethernet)
RX packets 351 bytes 31633 (30.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 300 bytes 31414 (30.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0