现状描述

今天个人办公电脑更换好后,也陆陆续续的进行数据拷贝的工作。上午下载好VMwareworkstation后,就用光盘安装了下Centos6.2,具体安装步骤这里就不一一赘述了。然后考虑到以后会用好几台做集群实验和测试,安装好后,就用了VMware做了个完美克隆。在配置好这台克隆机器的网卡信息后,重启network服务时,报错


注:Test01为原始机器,Test02和Test03均为克隆机

问题解析

产生这个问题的原因是虚拟机分配给操作系统的虚拟网卡MAC地址是不一样的。第一个系统的网卡MAC地址记录在了/etc/udev/rules.d/70-persistent-net.rules,命名为eth0。新克隆分配的系统的网卡MAC地址也记录在了该文件当中,与之前的系统一样,因此有了冲突。

也可以这么理解:虚拟机用模板做linux的时候因为网卡配置信息(主要是MAC)也复制过去,但是虚拟服务器会分配另外的一个mac地址,启用的时候会出错,错误信息为:device "eth0" does not seem to be present, delayinginitialization

解决办法

知道原因后,我们就可以很准确的找到解决办法了。

1.删除/etc/udev/rules.d/70-persistent-net.rules,待重启机器后会生成新的文件

2.打开新生成的/etc/udev/rules.d/70-persistent-net.rules,此时已经得到新的MAC地址(也可以通过ifconfig-a来查看新的MAC地址),将NAME=“eth1”修改成NAME=“eth0”

00:0c:29:e6:8e:4b


然后修改配置文件vi/etc/sysconfig/network-scripts/ifcfg-eth0的内容即可。




1. Mysql的数据目录创建单独的逻辑卷

mkdir /mydata

#创建存放数据的目录

fdisk /dev/sdb

#新建分区属性为8e

pvcreate /dev/sdb2

vgcreate myvg /dev/sdb2

lvcreate –L 4G –n mylv myvg

mkfs.ext4 -L MYDATA -j /dev/myvg/mylv

vim /etc/fstab   #添加一行信息

LABEL=MYDATA            /mydata                 ext4    defaults        0 0

mount -a

mkdir /mydata/data

groupadd -g 3306 mysql

useradd -g 3306 -u 3306 mysql

cd /mydata/

chown mysql.mysql data –R

上传mysql-5.6.10-linux-glibc2.5-x86_64.tarroot目录

将其解压缩到/usr/local目录下


[root@zl ~]# tar xfmysql-5.6.10-linux-glibc2.5-x86_64.tar.gz -C /usr/local


/usr/local目录下创建一个简短的链接:


[root@zl local]# ln -svmysql-5.6.10-linux-glibc2.5-x86_64 mysql

将其所属组改为mysql

[root@zl local]# chown .mysql * -R


初始化mysql

[root@zl local]# cd mysql

[root@zl mysql]# yum install libaio

Loaded plugins: fastestmirror

Loading mirror speeds from cached hostfile

Setting up Install Process

Resolving Dependencies

--> Running transaction check

---> Package libaio.x86_640:0.3.107-10.el6 will be installed

--> Finished Dependency Resolution


Dependencies Resolved

[root@zl mysql]# scripts/mysql_install_db--user=mysql --datadir=/mydata/data

[root@zl mysql]# cp support-files/mysql.server/etc/init.d/mysqld


将其加载到服务中去,

[root@zl mysql]# chkconfig --add mysqld

[root@zl mysql]# pwd

/usr/local/mysql

初始化完成后,会在当前目录下生成一个my.cnf的文件,添加如下文字,直接修改就可以;

Vim my.cnf


binlog-format=ROW

log-bin=master-bin.log

log-slave-updates=true

gtid-mode=on

enforce-gtid-consistency=true

master-info-repository=TABLE

relay-log-info-repository=TABLE

sync-master-info=1

slave-parallel-workers=2

binlog-checksum=CRC32

master-verify-checksum=1

slave-sql-verify-checksum=1

binlog-rows-query-log_events=1

server-id=1

report-port=3306

port=3306

datadir=/mydata/data

socket=/tmp/mysql.sock

report-host=master.zl.com

添加环境变量:

vim /etc/profile.d/mysql.sh

[root@zl profile.d]# cat mysql.sh

#!/bin/bash

export PATH=$PATH:/usr/local/mysql/bin


启动mysql

Service mysqld start


主服务器启动完毕;

在从服务器上进行mysql的安装于主服务器相同,这里就不再过多的叙述了,其中从服务器的my.cnf配置文件添加内容为:



我这里主服务器的IP192.168.0.145,从服务器的IP192.168.0.146

在主服务器上授权具有复制权限的用户:

mysql> grant replication slave on *.* [email protected] identified by 'test';

Query OK, 0 rows affected (0.03 sec)


mysql> flush privileges;

Query OK, 0 rows affected (0.01 sec)


查看主服务器状态信息:


在从服务器上链接到主服务器

mysql> change master tomaster_host='192.168.0.145',

  -> master_user='test',

  -> master_password='test',

  -> master_log_file='master-bin.0000022953:1-6',

  -> master_log_pos=919;

Query OK, 0 rows affected, 2 warnings (0.09sec)

查看连接后从服务器状态:


注意:我在做的过程中时间忘记同步,造成slave_io_running显示为connecting的状态。正常情况为两个yes



启动从服务器;

mysql> start slave;

Query OK, 0 rows affected, 1 warning (0.02sec)


查看状态信息:

在主服务器上创建相关数据进行测试:

Create database zl;