工具准备
- nivicat premium
- 下载 navicat 连接Oracle需要的instantclient,下载地址https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html找到与服务器版本一直的 instantclient Basic Package包,下载完成之后解压到你习惯的开发目录
一定是对应的19c版本的Basic Package 包很重要,否则是安装好数据库远程是无法连接的
-
打开nivicat ,找到如下图位置,替换自己的目录
以下所有的操作都是基于本机win10,远程系统CentOS7.6,安装DB为Oracel19c
下载预安装和oracle
下载oracle19c的地址:https://www.oracle.com/technetwork/database/enterprise-edition/downloads/oracle19c-linux-5462157.html
下载预安装oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm的下载地址:http://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
我本人是通过提前下载后,通过FileZilla 将两个文件上传到了在了 root的根目录
)
开始安装
- 第一步
yum localinstall -y oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm
- 第二步
yum localinstall -y oracle-database-ee-19c-1.0-1.el7.x86_64.rpm
注意这里的名称有可能会变化的哦,以你下载的文件全名为主
- 第三步
/etc/init.d/oracledb_ORCLCDB-19c configure
这一步会很耗时,当然服务器配置好的话不会太慢,20分钟左右
- 第四步,设置环境变量,否则sqlplus / as sysdba 是不识别的
#执行
vi .bash_profile
#添加一下内容
export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1
export PATH=$PATH:/opt/oracle/product/19c/dbhome_1/bin
export ORACLE_SID=ORCLCDB
#保存退出后 {esc -> :wq} 执行以下命令,使环境变量生效
source .bash_profile
- 第五步 启动服务和监听
su oracle #切换到oracle
sqlplus / as sysdba #打开sql窗口
startup #启动服务
exit #退出命令窗口
cd $ORACLE_HOME/bin #定位到bin目录
lsnrctl start #启动监听
防火墙设置
网上关闭防火墙的做法实在是有点不负责任,防火墙在实际生产环境是必须要开启的
systemctl start firewalld.service
systemctl enable firewalld.service
firewall-cmd --permanent --zone=public --add-port=22/tcp
firewall-cmd --permanent --zone=public --add-port=1521/tcp
firewall-cmd --reload
firewall-cmd --permanent --zone=public --list-ports
现在已经可以和远程数据库连接了。
创建表和表空间
- 创建表空间
create tablespace bettem_ts1 datafile '/opt/oracle/oradata/newdata/BETTEM_TS1.dbf' size 500M autoextend on next 100M maxsize unlimited;
# /opt/oracle/oradata/newdata/BETTEM_TS1 修改为自己的路径,如果有权限问题,使用 777 授权即可
- 创建用户,直接在CDB下创建
create user c##test identified by test_123
- 授权用户
grant create session to c##test;
grant create table to c##test;
grant create tablespace to c##test;
grant create view to c##test;
grant unlimited tablespace to c##test;
- 授权表空间
alter user c##test quota unlimited on bettem_ts1;
此刻就可以连接了
切换CDB
alter session set container=CDB$ROOT;
切换PDB
alter session set container=ORCLPDB;
创建本地用户 (不需要加c##)
create user test identified by 123456;
猜你会遇到的问题
- sql命令窗口的中文乱码问题
# 切换oracle 账户
su oracel
# 进入sql
sqlplus / as sysdba
#查看数据库编码
select userenv('language') from dual; // copy 下编码
# 退出sql 命令行
ctrl+D
# 切换到主用户
su root
# 编辑配置文件
vi .bash_profile
确定添加
export LANG="zh_CN.UTF-8"
export NLS_LANG=AMERICAN_AMERICA.UTF8 // 替换的数据库编码字符串
#生效配置
source .bash_profile