这周给服务器安装环境,其中一部分是安装神通数据库。由于网上有关神通数据库的资料实在是不多,踩了不少坑,本文现将安装的详细过程及其中遇到的坑记录下来。
开发环境是Windows系统,有安装神通对应的软件工具,其中“DBA管理工具”软件就可以对数据库进行逻辑备份,将数据库导出成osr后缀的文件。
此次要安装环境的服务器主板是龙芯主板(loongson),神通数据库有对应的源码,可自行下载:各个类型版本的神通数据库下载
下载安装包(假定是shentong.tar.gz),解压后,开始进行安装(假定解压在/opt/shentong目录下)。
修改/opt/shentong/Disk1/InstData/st.propertities文件,将OSRDB全部替换成我们要建的数据库名,例如BLUEZHAI。
:s/OSRDB/BLUEZHAI/g
查了许久资料,也尝试了许久时间,没能找到什么时候可以自行用命令创建数据库,所以只好将默认数据库直接改成我想要的数据库。
要建多个库的话,我这种方式就行不通了。
cd /opt/shentong/Disk1/InstData
./setup.bin -f st.propertities
神通数据库是国产数据库,而且是需要付费的,而这个工作是通过源码里的授权码来实现的。
授权码位置:/opt/shentong/license/oscar.license
授权码无效的话,数据库就会无法启动,在日志/opt/shentong/log/目录下的elog文件里,你就会看到大致如下的报错信息:
ERROR, 打开license文件/opt/ShenTong/license/oscar.license失败
/etc/init.d/oscardb_BLUEZHAId start /etc/init.d/oscardb_BLUEZHAId stop
将BLUEZHAI替换成自己的数据库名即可。
神通数据库默认为提供如下账号密码:
用户名 sysdba
密码 szoscar55
在生产环境里,我们肯定不能使用这个账号和密码。
在修改用户名和密码之前,我们得先保证默认的账号密码能够远程连接数据库。神通数据库有专门提供Windows平台下的SQL交互工具这一软件来连接数据库并执行sql语句的。这一步没成功就不要继续后面的了。
神通数据库安装包自带isql命令,通过它可以连接访问数据库。
先echo下path,看看系统默认环境变量路径有哪些:
echo $PATH
给isql创建软链接:
ln -s /opt/ShenTong/bin/isql /usr/local/bin/isql
本人这里PATH变量路径里包含/usr/local/bin的默认路径。如此建立好了,就可以直接使用isql命令去连接神通数据库了。
连接数据库:
isql -d BLUEZHAI
接下来才是真正的开始修改用户名和密码了。
本人没有直接的修改用户名,而是通过修改sysdba用户的密码,以及新增一个新用户(新增的用户名和密码,要和程序里数据库配置保持一致)来解决的。
SQL> create user blue2020 with password 'djf3u2oc&8df*'; CREATE USER SQL> alter user sysdba with password '3243ioudoifsldkjr32oiuo3djfdsk'; ALTER USER SQL> grant role sysdba to user blue2020; GRANT
其中grant role是给用户指定角色权限的,默认创建的用户账号,远程连接会提示“没有权限访问”。
上面我们只是创建的空数据库,现在将一开始备份的osr文件,同样通过“DBA管理工具”进行逻辑恢复即可。几乎算得上是一键搞定,很简单的。
--with-config-file-path=/etc/php.ini
Configuration File (php.ini) Path /etc/php.ini Loaded Configuration File None
--with-config-file-path=/etc
Configuration File (php.ini) Path /etc Loaded Configuration File /etc/php.ini
Warning: PHP Startup: Unable to load dynamic library 'pdo_aci_nts' (tried: /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/pdo_aci_nts (/usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/pdo_aci_nts: cannot open shared object file: No such file or directory), /usr/local/php/lib/php/extensions/no-debug-non-zts-20180731/pdo_aci_nts.so (libaci.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
sudo vim /etc/systemd/system/rc-local.service [Unit] Description=/etc/rc.local Compatibility ConditionPathExists=/etc/rc.local [Service] Type=forking ExecStart=/etc/rc.local start TimeoutSec=0 StandardOutput=tty RemainAfterExit=yes SysVStartPriority=99 [Install] WantedBy=multi-user.target //激活rc-local.service sudo systemctl enable rc-local.service //赋予执行权限 touch /etc/rc.local chmod +x /etc/rc.local