win10安装oracle 19c后,配置客户端(navicat12)远程连接

背景:下载了oracle19c的windows安装包,解压在C:\a_file\WINDOWS.X64_193000_db_home,运行目录里的setup.exe启动安装,oracle目录设在C:\a_software\oracle 。

1.启动navicat12进行连接,报ORA-12541:TNS:no listener错误

是listener.ora文件没配置的问题,接下来进行配置:

(1)文件在哪?

文件在oracle的home目录,即解压文件夹(C:\a_file\WINDOWS.X64_193000_db_home),的\network\admin下面。

注:oracle安装包的解压文件夹就是oracle的home目录了,安装前就应该规划好文件夹名和硬盘路径,不要像我一样忘了。

(2)配置什么?

原来只有 HOST = localhost 这一个配置,再加一个配置,把 localhost 改成本地ip

(3)重启oracle监听程序

运行cmd,输入lsnrctl stop命令,报错,当前用户无权限。

用管理员方式运行cmd,输入lsnrctl stop命令,再输入lsnrctl start命令,就可以了。

2.再次进行连接,报sid或server name未找到

(1)还是listener.ora文件没配置的问题,接下来进行配置:

加上红框的部分,SID_NAME为oracle安装时设置的SID,默认是orcl

(2)重启oracle监听程序

3.再次进行连接,报ORA-28040: No matching authentication protocol

是oracle服务端 与 oracle客户端版本不匹配的问题。

在oracle服务端修改客户端最低版本可以解决。

(1)找到sqlnet.ora文件

与刚才的listener.ora文件在同一个目录。

没有的话,就手动新建一个txt文本,文件名改为sqlnet,后缀改为ora。

(2)修改内容

添加

SQLNET.ALLOWED_LOGON_VERSION_SERVER=8

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8

这两行,不用重启数据库,也不用重启监听程序。

4.再次进行连接,报用户名口令无效

因为改了第三步的sqlnet.ora,修改了最低客户端版本。

本地登录无影响;但客户端登录想要生效,得重新修改密码。

修改用户密码:

(1)输入 sqlplus / as sysdba

(2)输入alter user sys identified by oracle;

蓝色的部分,第一个是用户名,第二个是密码

5.navicat登陆成功

(1)要是报角色错误

点“高级”选项卡,把第二行的角色改成SYSDBA

(2)创建新用户并赋予dba权限

1)运行cmd,进入oracle命令行:

sqlplus / as sysdba

2)在oracle命令行,输入以下语句:

create user c##dba identified by c##dba;

grant dba to c##dba;

注:为什么用c##这么诡异的前缀?

因为默认创建了cdb容器数据库,分为root数据库和其他多个数据库。默认进的root数据库。

其他多个数据库:用户名不用加c##前缀。

—— 在哪个数据库建用户,这用户就只能在哪个数据库用。

root数据库:用户名就得加c##前缀。

—— 这用户在哪个数据库都能用。因此,加这前缀也是为了区分用户。

—— 听说不启用 PDB(其他多个数据库) ,就可以去掉这个前缀限制。

猜你喜欢

转载自blog.csdn.net/u013595395/article/details/107878729