常见数据库安装注意事项
(原标题: DataWindowHTTP数据库安装)
转载请保留版权消息勿删除:(谢绝转载到任何文档网站!)
blog.csdn.net/chengg0769
http://www.powerbuilder.ltd
http://www.haojiaocheng.cc
这个文档并非必要文档。对于熟悉安装的朋友,这个文档不是必须的。
我仅仅熟悉MSSQL的安装,也只使用过SQL2000,2005,2008。所以在测试时,查阅了一些资料并做了笔记。考虑到大家也可能尝试不熟悉的数据库,比如mysql,postgresql,或许可以作为参考。过去PB的黄金搭档就是MSSQL和ORACLE。现在随着版权的增强和成本的考虑,某些项目完全可以使用开源数据库。就我们许多的中小项目而言,数据量和并发要求很低,其实是足够。唯一缺乏的就是熟悉程度,个人感受呢,开源数据库使用起来会遇到很多问题,需要多实践多积累,物尽所用,最后会得心应手。
目录:
MSSQL
ORACLE
MYSQL
POSTGRESQL
一.MSSQL
- MSSQL2000安装
我们一般使用4in1安装盘,根据需要选择企业版,个人版还是开发版。
sql2000虽然在高版本PB不再推荐,但是通过这个组件可以很好支持。因为微软驱的驱动仍然能支持2000。因为简单实用,资源耗用少,管理员熟悉而还有大量使用。
- 设置兼容性:ENTERPRISE\X86\SETUP\SETUPSQL.EXE右键属性设置兼容性。
- 出现 以前某个程序...挂起的文件操作 错误时:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations项目删除即可
- 其他SQL2005-2017
同一台电脑安装多个版本的SQL时,使用不同的实例名加以区分。服务器名为 :
IP\\实例名 或者 电脑名\\实例名
- 为了安全,建议修改默认端口
2000通过“服务器网络实用工具”进行修改
2005以上,通过SQL Server Configuration Manageer\网络配置\协议\TCP/IP\属性 进行配置
- 如果webserver和数据库不在同一台电脑,请启用SQL的远程访问
2005在 SQL Server外围应用配置器\服务和连接的外围配置器\远程连接
而且某些版本需要加装补丁才支持远程连接。比如sql2005需要sp3以上。
- 跨主机使用
实际使用中,请让webserver和数据库置于同一台服务器或者同一个内网。减少不必要的延时。
通过不同机房或者不同外网进行访问虽然可以,但是速度上面是打折的。根据不同服务商,一般同区域的内网是互通的。
二.ORACLE
Oracle9i
在高版本window上无法安装,比如win2008提示兼容性问题无法安装。
尝试在xp上面安装成功,查资料也可以在win2003安装。
Oracle10g
Windows 2012上面,用安装包10204_vista_w2k8_x64_production_db.zip这个04补丁安装出现权限拒绝。
其他人的经验:Windows 2012 r2 64位系统安装10.2.0.4的数据库64位,总会出现这个报错,要么是dbca的时候,要么就是建完数据库,一重启服务器之后,sqlplus也登陆不了报错。尝试了一下安装了Oracle 10.2.0.5安装包就没在出现这问题,反复试了几次。
用10204_vista_w2k8_x64_production_db.zip安装在win2008上面成功。虽然提示:
Enterprise Manager配置失败,但是可以忽略。因为我不用em。安装是成功的。
Oracle11g安装
关于表名大小写报错的问题。
建立时不要用Navicat的向导,用sql语句直接写。表名和字段不要用引号。这样系统就不区分大小写。
在windows2012 server上安装oracle11g碰到“无法访问临时位置”的问题
针对客户端安装,在cmd中执行命令带上参数进行安装就没问题了:
setup.exe -ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
针对服务端安装,在cmd中执行命令:
setup.exe -ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
在win10系统下安装oracle11g时出现了报错:[INS-32025] 所选安装与指定 Oracle 主目录中已安装的软件冲突。
可能是之前没卸载干净,网上找了很多方式都没有成功解决。其实很简单,找到C盘的program files或者program files(×86)下的oracle里边的inventory文件夹删除即可。
Oracle12c
1. 安装到第一个【下一步】时,很卡(cpu占用率高,对于低配置云主机要耐心等待)。
2. 安装完占用内存比较大,可以调整。如果不想麻烦的可以跳过步骤2.
网上查的修改命令:
alter system set sga_target=8192m scope=spfile;
alter system set sga_max_size=8192m scope=spfile;
注意:sga_target 必须小于或等于 sga_max_size,否则库就启动不了
shutdown immediate;
startup
show parameter sga;
3.新建用户MY1,MY2,MY3
设置成员属于:CONNECT,DBA,RESOURCE
服务器权限:CREATE SESSION,SELECT ANY TABLE,UNLIMITED TABLESPACE
4. 下载for php8.0的oci8的32位dll到php的ext目录。(DataWindowHTTP服务器安装-WEBSERVER.docx中详述)
5. 安装oralce client 12102版本到phpinfo()指定的oci路径(这个很重要!)中。
并且把这个路径设置到系统Path,重启电脑。Phpinfo()看就有oci8信息了。
6.这两个表是临时表。其他版本中仍然需要建立这两个表。
CREATE GLOBAL TEMPORARY TABLE TEMPTALBE_PROC_OUTPUT (
PCID NUMBER,
OUT_CHAR VARCHAR2(4000),
OUT_NUM NUMBER
)ON COMMIT PRESERVE ROWS
CREATE GLOBAL TEMPORARY TABLE TEMPTALBE_PROC_QUERYREC
(
PCID NUMBER,
COL_A VARCHAR2(36),
COL_B NUMBER
) ON COMMIT PRESERVE ROWS
连接和管理ORACLE
在未安装oracle的电脑上,请安装Oracle Instant Client
下载地址:Oracle Instant Client Downloads
解压缩到c盘: C:\instantclient_11_2
设置系统变量:
Path变量添加这个路径 C:\instantclient_11_2
ORACLE_HOME = C:\instantclient_11_2
TNS_ADMIN = C:\instantclient_11_2
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
*关于Navicat连接oracle数据库的配置
在Navicat的选项》环境》oci library配置路径为oracle安装路径下面的这个文件:
C:\app\Administrator\product\11.2.0\dbhome_1\BIN\oci.dll (11.2为例, 其他版本类似)或者
C:\instantclient_11_2\oci.dll
三.MYSQL
适合同时安装Mysql5.7与8.0,也适合只安装一个版本。
1. https://dev.mysql.com/downloads/ 下载
2. 同时安装两个版本,请下载zip版本进行手工配置。
3. 解压缩后请在根目录,而不是bin目录建立my.ini文件。
[mysqld]
#端口号
port=3306 <<改端口
#MySQL解压路径
basedir=C:\\mysql-5.7.29-winx64
#MySQL数据文件路径
datadir=C:\\mysql-5.7.29-winx64\\data
#最大连接数
max_connections=200
#服务器字符集
character-set-server=utf8
#默认表引擎
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
#客户端字符集
default-character-set=utf8
- 管理员身份打开cmd,切换到bin目录
mysqld --initialize-insecure --user=mysql
mysqld --install MYSQL57 <<这是服务名称。多个安装的话,要区分开。
net start MYSQL57 //启动服务
mysql -u root -p 输入密码 //命令端登录
#删除服务
sc delete MYSQL57
#安装时创建空密码
mysqld --initialize-insecure --user=mysql
#改密码
mysqladmin -u root -p password 新密码 回车
enter password: 旧密码
#MySQL 8.0起默认字符集改成了utf8mb4,这造成PHP PDO连接报错
#只需要重新指定默认字符集为utf8即可,
但这并不影响在MySQL里创建utf8mb4字符集的表
character-set-server = utf8
#指定账号认证plugin还使用native模式,否则PHP PDO连接握手时会报错
default_authentication_plugin = mysql_native_password
//mysql_connect无法连接mysql8.0时。提示升级client。
mysql -u root -p
mysql:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; <<单引号里面是自己的密码。
如何修改postgresql服务器登陆密码
1、关闭数据库服务
2、进入数据库的工作空间目录 (如果是建库是没有另外指定,应该就是postgresql安装目录下的 data 目录)
3、编辑修改文件 pg_hba.conf, 把连接权限设置的 md5 加密方式 改成 trust以我的为例,原本设置是
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 md5
修改为
# TYPE DATABASE USER CIDR-ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
4、重新启动postgresql数据库服务
5、可以不用密码就能用postgres用户登陆,然后执行修改用户密码的操作
alter user postgres with password 'foobar';
6、修改 pg_hba.conf 文件,改回到 md5 方式,再重启数据库服务就ok了
host all all 127.0.0.1/32 md5
7、再执行建用户,和建库操作
createuser.exe -s -P foo -U postgres
createdb.exe --encoding=UTF8 --owner=foo --template=template_postgis -Ufoo
参数:
--encoding=UTF8 设置数据库的字符集
--owner=foo 设置数据库的所有者
--tmplate=template_postgis 设置建库的模板,该模板支持空间数据操作
--Ufoo 用foo用户身份建立数据库