VMware虚拟机设置Linux上网的三种方式

1.bridge :
默认使用vmnet0
将虚拟机的ip设置与主机同网段未使用ip,其余与主机相同:
例如主机ip是192.168.1.1,设置虚拟机ip为192.168.1.2。
netmask,broadcast,gateway,dns都与主机相同即可实现虚拟机<--->主机 虚拟机<---->互联网 通信。

2.nat :

默认使用vmnet8
将虚拟机设置成使用dhcp方式上网,windows下选择"自动获取ip",linux下开启dhcp服务即可
也可以手动设置:
ip设置与vmnet8同网段,gateway设置成vmnet8的gateway(/etc/vmware/vmnet8/nat/nat.conf)中可以查到vmnet8的gateway,通常是xxx.xxx.xxx.2。
netmask,broadcast设置与vmnet8相同,dns设置与主机相同。
例如 vmnet8 ip:192.168.1.1 gw :192.168.1.2
虚拟机设置: ip :192.168.1.3: 192.168.1.2

3.host-only :
默认使用vmnet1
将虚拟机ip设置与vmnet1同网段,gateway设置成vmnet1的ip,其余设置与vmnet1相同,dns设置与主机相同
例如 vmnet1 ip :192.168.1.1
虚拟机设置: ip :192.168.1.100 gateway :192.168.1.1
这样就实现了虚拟机<--->主机 通信,但是 虚拟机<--->互联网 仍无法通信
虚拟机与互联网通信:
将主机上网的连接共享给虚拟机的本地连接
比如:右击本地连接1(主机) -> 属性 -> 高级 -> 勾选允许其他网络用户通过此计算机的Internet连接来连接,然后选择VMware Virtual Ethernet Adapter for VMnet1(vmnet1)。
点击确定后如果出现报错“RPC 服务器不可用”,在服务那里把DNS Client设为启动再重试一遍即可。

PS,
关于vmnet1还是vmnet8,在安装虚拟机的时候有安装了两个本地连接,就是vmnet1和vmnet8。
关于优化:
我在Vmware虚拟机里跑CentOS 5.5选择的是第三种:host-only联网方式
这种方式用不到
VMware Agent Service
VMware DHCP Service
VMware NAT Service
VMware USB Arbitration Service
这4种服务,所以我都把它禁止掉了,然后我用的是vmnet1,所以vmnet8也被我停用掉。
这样VMware里的Linux也可以正常联网。

左连接,右连接,内连接,外连接

 

left join   :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。
right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。
inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。
full join:外连接,返回两个表中的行:left join + right join
cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。

declare @a table(a int,b int)
declare @b table(a int,b int)

insert @a values(1,1)
insert @a values(2,2)
insert @b values(1,1)
insert @b values(3,3)
select * from @a 
select * from @b
--左:
select * from @a Aa left join @b Bb on Aa.a=Bb.a
--右:
select * from @a Aa right join @b Bb on Aa.a=Bb.a
--内
select * from @a Aa inner join @b Bb on Aa.a=Bb.a
--外:
select * from @a Aa full join @b Bb on Aa.a=Bb.a
--交叉连接
select * from @a  cross join @b

内连接与外连接与交叉连接

(一)内连接
内连接查询操作列出与连接条件匹配的数据行,它使用比较运算符比较被连接列的
列值。内连接分三种:
1、等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结
果中列出被连接表中的所有列,包括其中的重复列。
例,下面使用等值连接列出authors和publishers表中位于同一城市的作者和出版社:
SELECT *
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
2、不等连接: 在连接条件使用除等于运算符以外的其它比较运算符比较被连接的
列的列值。这些运算符包括>、>=、<=、<、!>、!<和<>。
3、自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选
择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。
例,在选择列表中删除authors 和publishers 表中重复列(city和state):
SELECT a.*,p.pub_id,p.pub_name,p.country
FROM authors AS a INNER JOIN publishers AS p
ON a.city=p.city
(二) 外连接  
外连接,返回到查询结果集合中的不仅包含符合连接条件的行,而且还包括左表(左
外连接或左连接))、右表(右外连接或右连接)或两个边接表(全外连接)中的所有数据行。
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录;
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录;
例如1:SELECT a.*,b.* FROM luntan LEFT JOIN usertable as b
ON a.username=b.username
例如2:SELECT a.*,b.*
FROM city as a FULL OUTER JOIN user as b
ON a.username=b.username
(三) 交叉连接   
交叉连接不带WHERE 子句,它返回被连接的两个表所有数据行的笛卡尔积,返回到
结果集合中的数据行数等于第一个表中符合查询条件的数据行数乘以第二个表中符合查
询条件的数据行数。例,titles表中有6类图书,而publishers表中有8家出版社,则下
列交叉连接检索到的记录数将等于6*8=48行。   
例如:SELECT type,pub_name
FROM titles CROSS JOIN publishers
ORDER BY type