linux 网卡交换(eth0与eth1交换)

jackxiang 2010-12-2 18:53 | |
背景:原因很简单,需要交换两块网卡的原因是mysql是Lamp打包软件的一个配置好的多网卡,应对两个网卡已经配置好了,而我是虚拟机,只能装一块网卡,于是否,出现如下问题:

linux-Jack-Xiang:/usr/local/mysql/bin # ./mysqld_safe --user=mysql
eth1: error fetching interface information: Device not found
./mysqld_safe: line 24: [: !=: unary operator expected

我就需要换网卡了,或者修改eth0到eth1,呵呵。当然也可以修改mysql配置。
本文说明:前提是已经安装了多片网卡的驱动,但是需要调整多片网卡的顺序(如将eth0和eth1交换名称交换)。
方法一:
1、首先查看网卡的驱动名称
#dmesg |grep eth
就会出现如下字样:
  skge eth0: Link is up at 100 Mbps, full duplex, flow control tx and rx
  ATL2: eth1 NIC Link is Up<100 Mbps Full Duplex>
从上面的两行中可以看出安装的驱动为skge 和atl2
或者通过查看文件得知 #cat /etc/modprobe.conf
出现如下字样:
alias eth0 skge
alias eth1 ATL2
也可以看出驱动名称。
查询后,可以通过命令检查是否正确,注意大小写。
# lsmod |grep -E "atl2|skge"
atl2                   37656  0
skge                   40017  0
2、直接删除加载的驱动。
#rmmod skge
#rmmod atl2
3、重新加载驱动顺序(先加载的驱动,网卡名字为eth0,后加载的驱动,名字为eth1, ...)。
先切换到驱动安装的路径下。如下格式所示
# cd /lib/modules/2.6.18-164.el5xen/kernel/drivers/net
即可看见驱动程序
#ls |grep -E "atl2|skge"
然后选择加载驱动顺序。
#insmod atl2/atl2.ko
#insmod skge.ko
重新配置ip地址后,即可。
方法二:
直接修改配置文件  这种方法速度最快
1、首先停止网络服务
#/etc/init.d/network stop 或者#service network stop
2、切换到配置文件目录
#cd /etc/sysconfig/network-scripts
suse10 sp2:cd /etc/sysconfig/network/scripts/
mv ifcfg-eth0 ifcfg-eth1 【这样不行】
只好对mysql动刀了:ip=`/sbin/ifconfig eth1|grep "inet addr:"|awk -F ":" '{ print $2 }'|awk '{ print $1 }'`
变为:ip=`/sbin/ifconfig eth0|grep "inet addr:"|awk -F ":" '{ print $2 }'|awk '{ print $1 }'`

ip=`/sbin/ifconfig eth0|grep "inet addr:"|awk -F ":" '{ print $2 }'|awk '{ print $1 }'`
ippre=`echo $ip|awk -F "." '{ print $1 }'`
if [ $ippre != "192" ];then
    if [ $ippre != "10" ];then
        echo "IP CONFIG IS WRONG,PLEASE CHECK FIRST!!!"
        exit
    fi
fi


启动Mysql的问题解决如下,这儿是闲扯淡,但还是有写用处的,呵呵:

启动发现:权限不够

101203 02:59:25  mysqld started
101203  2:59:25  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'create'.
InnoDB: Cannot continue operation.
101203 02:59:25  mysqld ended

cd /usr/local/mysql/
chown mysql.mysql *
再启动发现:
101203  3:04:11 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
没有初始化mysql库:
scripts/mysql_install_db --user=mysql
如下操作:
linux-Jack-Xiang:/usr/local/mysql # find . -name "mysql_install_db"
./bin/mysql_install_db
linux-Jack-Xiang:/usr/local/mysql # cd bin/
linux-Jack-Xiang:/usr/local/mysql/bin # ./mysql_install_db
Installing all prepared tables
Fill help tables
To start mysqld at boot time you have to copy support-files/mysql.server
再启动发现:
101203  3:08:16 [ERROR] /usr/local/services/mysql-5.0.26/libexec/mysqld: Can't find file: './mysql/host.frm' (errno: 13)
在find -iname '*host.frm*'里知道host.frm是在mysql的系统表里,进行系统表查看权限:

linux-Jack-Xiang:/usr/local/mysql/var/mysql # ll host.*
-rw-rw---- 1 root root    0 Dec  3 03:11 host.MYD
-rw-rw---- 1 root root 1024 Dec  3 03:11 host.MYI
-rw-rw---- 1 root root 9416 Dec  3 03:11 host.frm
晕,原来真是权限问题:(特别注意:mysql这个目录也需要是mysql权限的,我发现是root的,最后和下面三行修改权限的方式才启动mysql成功!)

[ROOT mysql]$ chown mysql *
[ROOT mysql]$ chgrp mysql *
[ROOT mysql]$ chmod ug+rwx *
启动后如下:

linux-Jack-Xiang:/usr/local/mysql/var # ps aux|grep mysql
root      2233  0.0  0.1   2808  1312 pts/1    T    03:18   0:00 /bin/sh ./mysqld_safe --user=mysql
mysql     2265  0.1  7.3 517108 56976 pts/1    Sl   03:18   0:00 /usr/local/services/mysql-5.0.26/libexec/mysqld --basedir=/usr/local/services/mysql-5.0.26 --datadir=/usr/local/services/mysql-5.0.26/var --user=mysql --pid-file=/usr/local/services/mysql-5.0.26/var/linux-Jack-Xiang.pid --skip-external-locking --port=3306 --socket=/tmp/mysql.sock

————————————————————————————————————————————————————————


3、交换ethx文件
如:有两片网卡eth0和eth1
#mv ifcfg-eth0 ifcfg-eth5
#mv ifcfg-eth1 ifcfg-eth0
#mv ifcfg-eth5 ifcfg-eth1
交换文件后,还需要编辑ifcfg-ethx文件中的 DEVICE=ethx,如:将ifcfg-eth0文件中的DEVICE对应eth0,将ifcfg-eth1文件中的DEVICE对应eth1。
修改完成后,重新启动network服务即可。
来源:http://wscyza.blog.51cto.com/898495/282552

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/3819/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2010-12-2 19:26
评论列表
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]