在实际的工作场景中进场接触的数据库类型:Oracle,今天决定自己代建一个自己的Oracle数据库,做学习用。安装过程还算顺利。在配置远程登录的过程中遇到了低版本客户端登录高版本客户端,密码和连接串配置的问题问题。
下载客户端
- 19c下载地址:Linux版本Oracle官网下载地址
- 下载包:oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
通过yum localinstall *.rpm -y 进行安装即可,默认会创建一个oracle用户,使用root切换到oracle用户登录状态,不用输密码。可直接进行操作
启动数据库
sudo /etc/init.d/oracledb_ORCLCDB-19c configure
默认会创建一个实例和服务叫:
ORCLCDB
使用oracle账户进行登录
su oracle
配置用户独有的环境变量
注意:下面这些动作在执行 sudo /etc/init.d/oracledb_ORCLCDB-19c configure 的时候,脚本已经声明好了,这一步可以跳过。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsexport ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export ORACLE_SID=ORCLCDB
export LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlib
export NLS_LANG=american_america.al32utf8
export NLS_DATE_FORMAT="yyyy-mm-dd:hh24:mi:ss"
PATH=$PATH:$HOME/.local/bin:$ORACLE_HOME/bin
export PATH
激活环境变量
source ~/.bash_profile
测试连接
systemctl start oracledb_ORCLCDB-19c
sqlplus / as sysdba
建立自己的测试用户–密码不要用特殊字符,容易出问题
CREATE USER app_user IDENTIFIED BY userpassword123;
授予角色权限给用户
grant connect,resource to app_user ;
测试能否正常连接
sqlplus app_user/userpassword123;
客户远程客户端连接
11g客户端登录前先设置服务端兼容11g,在$ORACLE_HOME/network/admin/sqlnet.ora中添加
#配置允许使用较旧的认证协议
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8
重启监听:
lsnrctl stop
lsnrctl start
使用pl/sql进行连接,工具走的时oci连接数据库的方式,也就是走的Oracle客户端建立连接。刚开始进行连接的时候会一直报一个密码错误提示。
最后查阅资料发现,改动sqlnet.ora文件后需要重新对用户进行授权和重置密码。这样操作之后就能正常登录了。