现状描述
今天个人办公电脑更换好后,也陆陆续续的进行数据拷贝的工作。上午下载好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.tar到root目录
将其解压缩到/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配置文件添加内容为:
我这里主服务器的IP为192.168.0.145,从服务器的IP为192.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;