在安装或使用DM数据库中,我们经常会需要使用图形化界面,但某些情况下,我们可能会打开图形化界面失败。本文分别介绍通过VNC或者VMware连接数据库服务器,和使用Xmanager第三方工具连接服务器打开图形化界面的方法。实验环境的操作系统已安装xorg-x11图形化界面相关包,如果Linux环境未安装图形化界面,请先安装xorg-x11包。
1、通过VNC或者VMware Workstation连接
使用root用户登录虚拟机,切换为dameng用户,执行./DMInstall.bin安装DM数据库,报错:初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用“./DMInstall.bin-i”进行命令行安装。
此时,出现此问题的原因,是无法打开图形化界面,当然,我们也可以使用/DMInstall.bin -i非图形化界面方式安装,但此方式不如图形化界面直观,我们完全可以解决图形化界面的问题,来实现图形化界面方式的安装。
执行xclock测试图形化界面,提示“Error:Cann’topen display:”,DISPLAY后面显示为空,说明没有设置DISPLAY。如下图:
使用root用户执行xclock,此时可以正常打开小时钟,说明root的DISPLAY环境变量正常。
使用root用户执行echo $DISPLAY查看root的DISPLAY参数值,显示为:2,重新执行su - dameng切换为dameng用户,执行export DISPLAY=:2设置display环境变量,再执行xclock,如下图所示:
[dameng@localhost~]$ export DISPLAY=:2
[dameng@localhost~]$ xclock
此时可打开小时钟,如下图。
然后再执行./DMInstall.bin就可以正常打开图形化界面了。
有时,我们设置了DISPLAY仍然无法打开图形化界面(一般出现在第一次打开图形化界面的情况),此时可使用root用户执行xhost +,然后再切换为dameng用户,设置DISPLAY后即可打开图形化界面。
在虚拟机环境中,我们也可以直接使用dameng用户登录虚拟机,不需要任何设置,执行./DMInstall.bin即可打开图形化界面。
2、通过Xmanager第三方工具连接
Windows机器使用Xshell连接数据库服务器,root用户登录后切换为dameng用户,执行./DMInstall.bin安装DM数据库,报错:初始化图形界面失败,如果当前监视器窗口不支持图形界面,请进入安装文件所在文件夹并使用“./DMInstall.bin-i”进行命令行安装。如下图所示:
问题原因同样是图形化界面的设置,需要设置DISPLAY。我们来看一下DISPLAY环境变量的设置格式:
DISPLAY环境变量格式为:host:NumA.NumB。
其中,host指Xserver所在的主机主机名或者IP地址,图形将显示在这一机器上,可以是启动了图形界面的Linux/Unix机器,也可以是安装了Exceed,X-Deep/32等Windows平台运行的Xserver的Windows机器,如果Host为空,则表示Xserver运行于本机;并且图形程序(Xclient)使用unix socket方式连接到Xserver,而不是TCP方式;使用TCP方式连接时,NumA为连接的端口减去6000的值,如果NumA为0,则表示连接到6000端口;使用unix socket方式连接时则表示连接的unix socket的路径,如果为0,则表示连接到/tmp/.X11-unix/X0;NumB则几乎总是0。
host的概念很容易理解,其实就是windows机器IP(A连接B服务器,设置为A的IP)。NumA.NumB不容易理解是什么意思,但我们可以使用Xmanager– Passive工具查看。
注意:使用Xshell打开图形化界面前,需要打开Xmanager– Passive,该工具在Xmanager安装目录下,一般会在桌面创建快捷方式,如下图。
双击运行Xmanager- Passive,会在任务栏中出现Xmanager- Passive的图标,鼠标悬浮其上会显示图形化监听的设备为[:0.0]。这个值即为NumA.NumB的值。
好,知道了NumA.NumB之后,我们查看本机windows与虚拟机连接的IP地址,打开CMD窗口执行ipconfig查看IP地址,如下图。
我的虚拟机网络设置的是仅主机模式,主机和虚拟机之间会建立一个内网网络“以太网适配器VMware Network Adapter VMnet1”。
也可以在虚拟机中使用root用户执行ifconfig查看虚拟机IP地址信息,如下图,可以看到IP地址为192.168.88开头。
可以看出本机windows机器与虚拟机之间使用“以太网适配器VMware Network AdapterVMnet1”网络通信,执行如下命令设置DISPLAY的IP为本机192.168.88.1,NumA.NumB为0.0。
[dameng@localhost~]$ export DISPLAY=192.168.88.1:0.0
弹出窗口提示“从未授权的客户端接收到连接申请。请您在启动客户端或者是已知的源时接受。”。
选择“是”,打开clock小时钟,如下图。
此时,再执行安装脚本./DMInstall.bin即可打开图形化界面。
注意,有些环境可能设置好DISPLAY后仍然无法打开(一般是第一次打开的时候),此时在Linux主机上以root用户执行xhost +命令打开x-window的访问权限,再设置DISPLAY图形化界面就正常了。
[root@localhost~]# xhost +
另外,使用第三方工具时,要保证Xmanager–Passive开启。我们也可以直接使用dameng用户连接服务器,不需要任何设置,执行./DMInstall.bin即可打开图形化界面。
如果在使用DM数据库时,执行dbca.sh打开数据库配置助手图形化界面报如下错误,则也是图形化的问题,按照上述方法设置DISPLAY就可以了。
总结:
(1)使用VNC或者VMware连接并登录数据库服务器时,在设置DISPLAY环境变量时,不需要设置IP地址,因为VNC和虚拟机登录到服务器是在本机上操作,默认DISPLAY不指定IP时,指的是本机localhost。
(2)如果在Windows机器使用Xmanager第三方工具远程连接数据库服务器打开图形化界面时,首先保证Xmanager–Passive开启,然后设置hostIP:NumA.NumB,hostIP地址是windows本机IP,需要注意,设置IP时需要设置为本机与虚拟机之间通讯的网络IP(如虚拟机设置中网络适配器设置为主机模式,则主机和虚拟机之间会建立一个内网虚拟机网络“以太网适配器VMware Network Adapter VMnet1”用于主机与虚拟机间通信,设置此IP地址)。
(3)DISPLAY设置正确的情况下,仍然无法打开图形化界面,比如报错“Xlib:connection to ":0.0" refused by server Xlib: No protocolspecified”等,此时可以使用root用户执行xhost +命令,再切换用户,设置DISPLAY值。
(4)xclock命令可以用来测试图形化界面,根据xclock的错误来定位图形化界面的设置问题,如果xclock能正常打开,说明图形化界面设置没有问题,此时运行安装或者打开DM管理工具图形化界面报错,则不是图形化界面的问题,需从错误提示信息再排查原因。