远程服务端配置:
1. 数据库配置
因为要为外界客户端提供数据服务,所以一定要将 [数据库操作模式] 配置为 "共享服务模式". 我就是犯了这个错误,将操作模式配置成了"专用服务器模式",导至远程客户端无法正常连接.
如果不能确定数据库的操作模式,可以打开ORACLE "Database Configuration Assistant" 工具的 "在数据库中配置数据库选项" 进行配置.
如果新建数据库一定不要忘了将 [数据库操作模式] 配置为 "共享服务模式".
2. 数据库服务
确定数据库服务已经启动.
方法: 命令行 下键入 "services.msc"
在 WINDOWS服务 窗口中找到您的数据库服务(一般都以 OracleService数据库实例名 的形式命名),查看是否为"已启动"状态,否则请启动该服务.
3. 监听程序
确定数据库已经附加到监听程序中,并且监听程序已启用.
方法: 命令行 下键入 "lsnrctl"
在 lsnrctl控制台 窗口中键入 "services 监听程序名"
如果出现 "摘要信息" 则说明监听程序已启动
如果出现 "无监听器" 字样,说明监听程序未被启动
在 lsnrctl控制台 窗口中键入 "start 监听程序名" 以启动监听程序
也可在 命令行 下键入 "services.msc"
在 WINDOWS服务 窗口中找到您的监听程序服务(一般都以 OracleOraHome92TNSListener监听程序名 的形式命名,默认的监听程序服务名为 "OracleOraDb10g_home1TNSListener"),查看是否为"已启动"状态,否则请启动该服务.
4. 网络状态
确定监听程序所使用的端口已被列入防火墙允许的行列.
本地客户端配置
1. 测试连接
方法: 命令行 下键入 "tnsping 服务端IP地址"
如果出现 "OK(XX毫秒)" 字样,说明可以与服务端建立连接.否则请检查服务端配置.
2. 添加服务名
方法: 打开ORACLE "Net Configuration Assistant" 工具 -> "本地NET服务名配置" -> "添加" -> 选择ORACLE数据库或服务-> 输入服务名(建库时输入的全局数据库名) -> TCP -> 主机名中输入服务端IP地址,端口输入服务端监听程序所监听的端口 -> 是,进行测试 -> 首次测试可能会失败,因为默认的用户名口令不一定和服务端的匹配,点击 更改登录 输入有效用户名和口令确定后如出现"测试成功",说明连接成功,点击 下一步 -> 输入本地服务名 -> 直到完成.
3. 登录数据库
在SQLPLUS中以sys用户登录
mysql允许远程访问的配置
数据库服务端需要修改数据库的配置,允许某个用户:例如root,通过远程访问数据库
修改方法是,在安装目录中的bin下面,找到mysqlInstanceConfig执行文件,然后配置enable root access distance
另外一种方法是:
首先:update user set host = '%' where user = 'root'; 改变root绑定的主机地址
其次,给root授权远程访问:
grant all privileges on *.* to 'myroot'@'58.154.60.49' identified by 'root';
这里表示:授权myroot这个用户在49这个ip能够访问
或者grant all privileges on *.* to 'myroot'@'%' identified by 'root'; root可以是任意地址
FLUSH PRIVILEGES 表示让修改立即生效
oracle允许远程访问的配置:
总结下,要想完成远程数据库的访问,需要完成以下两大部分:
|-远程服务端的Oracle数据库配置——将数据库模式改为“共享数据库模式”;
|-本机Net服务名的配置——配置需要访问的远程服务端的主机信息。
服务器端:利用oracle的图形界面工具:Database Configuration Assistant ,选择数据库的模式为共享数据库模式
客户端:找到Oracle 的一个工具——Net Configuration Assistant ,勾选“本地Net服务名配置”,然后选择“添加”,
点击“下一步”,提示我们设置一个“服务名”,根据界面上方的提示,每个Oracle数据库或服务都有一个服务名,
然后依次指定要连接的主机的ip和端口即可
oracle数据库每个服务都有服务名,例如在使用pl/sql登陆的时候,也需要我们输入服务名
注意:以上的所有配置就是完成访问远程数据库的必要设置,需要再次强调的是,不论是配置服务端还是客户端,
我们都需要进行一步操作:关闭防火墙。
Telnet 主机地址 端口号(没有写,默认是23)
可以用来测试能否连接上主机上的某个端口,我用telnet测试,报错发现连不上,所以我的jdbc程序一直无法连接远程主机的数据库
命令行下面如何连接远程数据库:
mysql -h10.0.2.182 -uroot -p123456