这里写自定义目录标题

1、oninit: Fatal error in shared memory initialization

WARNING: server initialization failed or timed out.
Check the message log, online.log, for errors.

GBase安装常见问题

解决:数据库初始化命令为oninit -ivy(生产环境千万不要用这个命令启动数据库,否则数据可能会被清空),以后启动的时候才oninit -vy

2、解决bash:oninit;命令未找到
参考linux下解决命令未找到

3、使用oninit -vy启动数据库时,发生以下错误:
Unable to read $GBASEDBTDIR (/usr/gbasedbt).
解决:可以看到GBASEDBTDIR这个变量的值变为了/usr/gbasedbt,

[root@192 ~]# oninit -vy
Unable to read $GBASEDBTDIR (/usr/gbasedbt).

而之前进行数据库配置的时候该变量的值应为/opt/GBASE/gbase,
该变量的值我是配置在/home/gbasedbt/profile.gbaseserver这个文件中。

# profile.gbaseserver# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/binexport PATHGBASEDBTDIR=/opt/GBASE/gbaseGBASEDBTSERVER=gbaseserverONCONFIG=onconfig.gbaseserverGBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserverGL_USEGLU=1PATH=${GBASEDBTDIR}/bin:${GBASEDBTDIR}/extend/krakatoa/jre/bin:${PATH}
export GBASEDBTDIR GBASEDBTSERVER ONCONFIG GBASEDBTSQLHOSTS GL_USEGLU PATH

配置完这个文件后,执行它。

[root@192 gbasedbt]# source profile.gbaseserver

然后,在root用户根目录下编辑下面这个文件

[root@192 ~]# vi .bash_profile

在这个文件中加入这条代码:source /home/gbasedbt/profile.gbaseserver,即profile.gbaserver这个文件的路径,文件内容如下:

# .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programs
source /home/gbasedbt//profile.gbaseserver
PATH=$PATH:$HOME/binexport PATH

我报这个错的原因就是这条代码不见了,原因可能是没有关闭数据库就关闭系统了。最后还要执行以下这个文件:

source .bash_profile 

我之前对数据库的安装和配置是参照官网的教程,自定义安装

4、出现以下报错:

[gbasedbt@localhost etc]$ dbaccess - -
Your evaluation license will expire on 2022-07-02 00:00:00
> create databasr^H
> create dab^H^H^H
> create database testdb;201: A syntax error has occurred.
Error in line 1
Near character position 8

解决:这是因为前几行输入不正确的原因,最后那行正确的代码执行前,也会检查其他代码,再重新输入就行了。

5、连接GBASE Data Studio测试连接时出现以下报错:
com.gbasedbt.asf.IfxASFException: Attempt to connect to database server () failed.
Attempt to connect to database server () failed.
java.net.ConnectException: Connection refused: connect
解决:关闭安装数据库的服务器的防火墙

6、防火墙设置

7、jdbc连接GBase8s数据库:

package util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;public class DbUtil {private String dbUrl="jdbc:gbasedbt-sqli://192.168.52.132:9088/testdb:INFORMIXSERVER=gbaseserver";private String dbUserName="gbasedbt";private String dbPassword="2011";private String jdbcName="com.gbasedbt.jdbc.Driver";/*** 获取数据库连接* @return* @throws Exception*/public Connection getCon() throws Exception{Class.forName(jdbcName);Connection con=DriverManager.getConnection(dbUrl,dbUserName,dbPassword);return con;}/*** 关闭数据库连接* @param con* @throws Exception*/public void closeCon(Connection con) throws Exception{if(con!=null){con.close();}}public static void main(String[] args) {DbUtil dbUtil=new DbUtil();try {dbUtil.getCon();System.out.println("数据库连接成功");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}
}}

8、在eclipse中去获取GBASE数据库中的数据时,报错:
java.lang.ClassNotFoundException: com.gbasedbt.jdbc.Driver
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1275)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1109)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)

解决:把找不到的jar包copy到tomcat的lib目录下(之前用mysql时出现这个错误也是这样解决的)

9、gbase设置自动增长字段

10、之前为了设置gbase数据库字符集为utf-8,结果出现以下错误:
Database locale information mismatch. java.sql.SQLException

解决:修改profile.gbaseserver中的字符编码,步骤如下:

[gbasedbt@localhost ~]$ cd /home/gbasedbt
[gbasedbt@localhost ~]$ vi profile.gbaseserver

修改后的文件如下:

# profile.gbaseserver# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/.local/bin:$HOME/binexport PATHGBASEDBTDIR=/opt/GBASE/gbaseGBASEDBTSERVER=gbaseserverONCONFIG=onconfig.gbaseserverGBASEDBTSQLHOSTS=/opt/GBASE/gbase/etc/sqlhosts.gbaseserverDB_LOCALE=en_US.819CLIENT_LOCALE=en_US.utf8GL_USEGLU=1PATH=${GBASEDBTDIR}/bin:${GBASEDBTDIR}/extend/krakatoa/jre/bin:${PATH}
export GBASEDBTDIR GBASEDBTSERVER ONCONFIG GBASEDBTSQLHOSTS DB_LOCALE CLIENT_LOCALE  GL_USEGLU PATH

修改后记得执行:

[gbasedbt@localhost ~]$ source profile.gbaseserver

参考资料:locale的设定及LANG、LC_CTYPE、LC_ALL环境变量
PHP PDO_INFORMIX区域设置错误-23101

11、gbase8s支持中文:

[gbasedbt@localhost etc]$ export DB_LOCALE=zh_CN.utf8;

参考:GBase8s数据库支持中文生僻字

12、gbase8s客户端连接数据库服务器:
GBASE8S 如何配置客户端

13编译esql程序时出现以下报错:

[root@SRQ3 gbasesrc]# make
esql -g -DLINUX -D__USE_XOPEN -Wdeprecated -Wformat -Wreturn-type -Wpragmas -Wswitch-default -Wunknown-pragmas -Wuninitialized -Werror  -g -c -O -I/home/gbasedbt/src/incl -I/opt/gclient/incl/esql exam_ins.ec 
Unknown error message 1202.
make: *** [exam_ins.o] 错误 1

解决思路:切换一个用户试一下吧,我也不知道什么原因。切换之后如下:

[root@SRQ3 gbasesrc]# su gbasedbt
[gbasedbt@SRQ3 gbasesrc]$ ls
del  exam_ins.ec  Makefile  sel  up
[gbasedbt@SRQ3 gbasesrc]$ make
esql -g -DLINUX -D__USE_XOPEN -Wdeprecated -Wformat  -Wpragmas -Wswitch-default -Wunknown-pragmas -Wuninitialized  -g -c -O -I/home/gbasedbt/src/incl -I/opt/gclient/incl/esql exam_ins.ec 
echo Compiling the program ex_ins ......
Compiling the program ex_ins ......
[gbasedbt@SRQ3 gbasesrc]$ ls
del  exam_ins.ec  exam_ins.o  ex_ins  Makefile  sel  up

GBase数据库sql语法
更改表名 rename table t_s to t_a;
创建数据库 create database mydb in datadbs1 with log;(指定存储空间为datadbs1)
创建数据库 create database testdb;
创建表 create table t1(id int,name varchar(20));
查看当前数据库中包含的表 info tables;
向表中插入数据 insert into t1 values (1,‘a’);
查询表中数据 select * from t1;

快捷命令
查看数据库状态 ps -ef|grep oninit
初始化数据库 oninit -ivy(生产环境禁用)
开启数据库 oninit -vy
关闭数据库 onmode -ky
onstat 检查数据库服务器是否启动
dbaccess / dbaccess 数据库名称(菜单方式操作数据库)
dbaccess – – /dbaccess 数据库名称 – (命令行方式操作数据库)
GBase错误码查询 finderr