使用php连接到远程服务器上的Interbase的问题

时间:2018-03-17 20:42:18

标签: php interbase

尝试使用下面的代码在Linux / Ubuntu服务器(客户端)和Windows服务器(主机)之间建立数据库连接,但由于某种原因它失败了。 IP地址没问题(ping好了),端口3050打开,用户名和密码也正确,那么可能是什么问题?下面的代码返回“连接失败!!!”。是的,安装了php / interbase库。

ibase_errmsg()

只是一个更新。事实证明连接正常,问题与用户名和/或密码有关。 @IBAction func butLogin(_ sender: AnyObject) { } @IBAction func butSignup(_ sender: AnyObject) { } override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. txtUsername.layer.borderWidth = 1 txtUsername.layer.borderColor = UIColor.white.cgColor txtUsername.layer.cornerRadius = 20 txtUsername.clipsToBounds = true txtPassword.layer.borderWidth = 1 txtPassword.layer.borderColor = UIColor.white.cgColor txtPassword.layer.cornerRadius = 20 txtPassword.clipsToBounds = true butLogin.layer.cornerRadius = 20 butLogin.clipsToBounds = true butSignup.layer.cornerRadius = 20 butSignup.clipsToBounds = true Bug: Value of type '(AnyObject) -> ()' has no member 'layer' Value of type '(AnyObject) -> ()' has no member 'clipsToBounds' 返回以下错误 “您的用户名和密码未定义。请您的数据库管理员设置Firebird登录。”但是,用户名和密码已经过多次三次检查,应该没问题。

2 个答案:

答案 0 :(得分:1)

尝试使用php ibase_connect连接到interbase XE7(V12)时遇到相同的错误。我的interbase服务器托管在Windows 10计算机中。

确保已安装php / interbase库,并将其列出为get_loaded_extensions()的结果。

就我而言,问题出在内部数据库密码摘要中。对于较旧的interbase,它使用“ des-crypt”摘要;对于较新的版本,它使用“ sha-1”摘要。我只是将密码摘要更改为“ des-crypt”,然后它起作用了。   这是使用isql.exe更改内部数据库的密码摘要的步骤。

C:\ProgramData\Application Data\Embarcadero\InterBase\gds_db或c:\ program文件下找到admib.ib,然后按照说明进行操作

1. SQL> CONNECT "C:\Program Files (x86)\borland\interbase\admin.ib" (hit enter)
2.CON> user 'SYSDBA' password 'masterkey';

3.SQL> ALTER DATABASE SET PASSWORD DIGEST 'DES-CRYPT';

4.SQL> UPDATE USERS SET PASSWORD_DIGEST = 'DES-CRYPT' WHERE USER_NAME='sitesync';

5.SQL> COMMIT;

然后打开gsec.exe并键入以下命令

 gsec -user sysdba -password masterkey (hit enter)
 modify sitesync -pw newpassword (hit enter and password changed)

再次返回sha-1

6. SQL> ALTER DATABASE SET PASSWORD DIGEST 'SHA-1';
7 commit;

就是这样。请注意,我是第一次使用php和interbase。请原谅我遗漏的任何细节或错字。

答案 1 :(得分:0)

是否可能需要将反斜杠转义到C:\\ folder \\ DBFILE.IB中,否则C:\ folder \ DBFILE.IB将转换为垃圾路径,IBASE不会这样做找到并给出相当不精确的错误消息?