Open Source RDBMS - Seamless, Scalable, Stable and Free

English | Login |Register

PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

CUBRID Official Forum » Programming Languages » PHP, PDO API » PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

author
message
[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.82

Dear thefsb,

  1. We haven't released PDO_CUBRID for 8.4.1 because 8.4.0 PDO is compatible with 8.4.1. So you can use pecl install pdo_cubrid-8.4.0.0002 with CUBRID 8.4.1.
  2. But since you want to use CUBRID 8.4.3, you need PDO_CUBRID 8.4.3 to use the new features available in CUBRID 8.4.3.
  3. _cci_connect_ex is a new API introduced in CUBRID CCI 8.4.3, and as you've noticed you've tried to build the PDO_CUBRID with CCI 8.4.1, this is why the above error is displayed.

I will build the CCI driver for Mac OS X right now. I suppose you are using Mountain Lion, right?

Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

I am using Mountain Lion 10.8.2.

Thank you for the speedy response!

Quote
[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.82

While I'm building 8.4.3 CCI for Mac OS X, you may want to use 8.4.0 PDO with 8.4.1 CCI in case you don't want to wait for me. I will reply as soon as I get the new CCI for Mac.

If you have other questions, feel free to ask. I will be glad to help you.

Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

We plan to use CUBRID for a new project. We are getting ready to start implementation and I'm getting the development systems ready.

One thing I only noticed yesterday was CUBRID's lack of support for Unicode and any kind of collation prior to 9.0.0. I think this means we have to target 9.0.0.

Is there any reason to be concerned about doing that? ".0.0" version numbers are sometimes a sign of immaturity. For example, I don't install a new major version of Mac OS X until the .1 is available.

Quote
[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.82

CUBRID 9.0 is the major release with biggest set of new features and performance improvements. However, perhaps your observations are correct in the way that we've release CUBRID 9.0 as a beta release of the upcoming stable release. We plan to announce the stable release in February 2013.

If Unicode and collation is so vital and required, you should go with 9.0. I do not think there will be critical issues though we admit that it is a beta release. Unless you have some hardcoded unicode routines in your application, I don't think Unicode support is so critical. CUBRID prior to 9.0 will store the data as you pass it with no alteration which means when retrieving the data you will get the same data. Lack of Unicode support affects only when you have non-ascii characters and want to perform string based search in your SQL. Unless you do this, there is no difference if you have Unicode support or not.

Also, if you plan to open your application/service before CUBRID 9.1 is released in February next year, then you'd better use the latest stable 8.4.3. Otherwise, you can start using 9.0 then migrate to 9.1 which will be backward compatible.

Quote
[레벨:8]CUBRID

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 03/28/2010

아이피: *.91.139.82

By the way, here are the 8.4.3 CCI libraries for Mac OS X. Download the x64 bit version and following this installation tutorial for PECL. I've also updated that tutorial. Now CUBRID CCI libraries should be placed in the main /usr/lib and headers in /usr/include as every common library should do.

Since the tutorial is for PHP, when installing from PECL simply install PDO_CUBRID instead of CUBRID. For example:

sudo pecl install pdo_cubrid

It should work now. If you have difficulties, let me know.

Quote
[레벨:8]ginarrbrik

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 11/07/2011

아이피: *.181.249.254

Quote

We plan to use CUBRID for a new project. We are getting ready to start implementation and I'm getting the development systems ready.

One thing I only noticed yesterday was CUBRID's lack of support for Unicode and any kind of collation prior to 9.0.0. I think this means we have to target 9.0.0.

Is there any reason to be concerned about doing that? ".0.0" version numbers are sometimes a sign of immaturity. For example, I don't install a new major version of Mac OS X until the .1 is available.


You're right, 9.0 is the beta version. However, I see no issue in using the beta version for development. The soon to be released 9.1 version will be compatible with 9.0 and you can switch to it when it is available. Since you're only now starting to develop your application, by the time 9.1 is available, your application will either be in very early stage or not released yet. Migrating to 9.1 should not be a problem at that time.

Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

Our application involves several dictionaries of proper names that can come from anywhere in the world. These dicts are compiled from other tables and are used in autocomplete. The dicts are sorta like normalized name tables but normalized under a very loose collator such as Unicode Level 1 or MySQL's utf8_general_ci. So, among other things, the unique index on the name column in the dict needs to understand that role == rôle, for example.

So I think we should target 9.0 and expect to migrate to 9.1 soon.

Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

Quote

By the way, here are the 8.4.3 CCI libraries for Mac OS X. Download the x64 bit version and following this installation tutorial for PECL. I've also updated that tutorial. Now CUBRID CCI libraries should be placed in the main /usr/lib and headers in /usr/include as every common library should do.

Since the tutorial is for PHP, when installing from PECL simply install PDO_CUBRID instead of CUBRID. For example:

sudo�pecl�install�pdo_cubrid

It should work now. If you have difficulties, let me know.


Installing with pecl and the new cci lib binaries was no problem except the result in phpinfo() was a little unexpected:

Screen Shot 2012-12-05 at 8.46.44 AM.png

Supported server 8.4.0?

I have not been able to get a PDO connection to work. The client connects to the server and they exchange about 14 packets in totoal over about 5 seconds and then PDO throws an exception:

Screen Shot 2012-12-05 at 1.19.10 PM.png

I have not been able to find any server log  entry pertaining to this failure.

Quote

Attachment:

[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.84

Dear thefsb,

Regarding "unexpected 8.4.0". This issue has been fixed. It should be 8.4.3. For now, you can just ignore it.

Regarding PDO connection issue, I will check it now and will get back to you with the answers.

Quote
[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.84

Hey, by the way, I've noticed you're using Yii PHP Framewok. That's cool! But AFAIK Yii doesn't support CUBRID yet. Actually last year I've started adding CUBRID 8.4.0 support to Yii, but then encountered some difficulties. At that time I decided to wait for 9.0 release. Now we have 9.0, I may start working on it again.

But anyway, tell me how are you planning to use Yii with CUBRID.

Now regarding your error "Cannot communicate with server". This means that you simply haven't started CUBRID. See this question and answer. Basically, you need to start CUBRID Service, then start your database. You can read other Important Facts to know about CUBRID.

I've just tried to connect perform queries, etc. with CUBRID PDO driver based on CCI driver on Mac OS X Mountain Lion. It does work properly.

Let me know if you have difficulties.

Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

yes, we are using yii. we have an extension based on thorny-road's files. i believe you have a version of that too. i would very much like to see your version. i will set up cubrid branch in my fork of yii that we can collaborate on.

the problem of yii not quoting column names is not a problem if you don't name your db columns after cubrid reserved words;)

whatever the problem with connecting is, stopping and restarting database and service didn't resolve it.

a0g2u.png

i assume the changes made to fix the version string are not something i need to correct this problem.

Quote
[레벨:3]Esen Sagynov

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 05/31/2011

아이피: *.91.139.82

Regarding the version related issue, I didn't say it would solve your issue.

Regarding, my Yii port for CUBRID, I will push to Github and will let you know.

Regarding your main "Cannot communicate with server" issue, can you connect and work with CUBRID through CUBRID Manager? If yes, then make sure the broker port you're indicating in the connection string to your PDO driver is right one.

The connection string for Yii CUBRID I used to use is the following:

cubrid:host=localhost;port=33000;dbname=yii

Before you try with Yii, first try and make sure your PDO connection works fine on its own. See if the following outputs OK.

<?php
$username ="dba";
$password ="pass";

try {
    $conn_str ="cubrid:dbname=demodb;host=100.66.80.270;port=33000";
    echo "PDO connect string: ".$conn_str . "
";

    $db =new PDO($conn_str, $username, $password );

    echo"PDO connection created ok!" . "
";

    $db = null; //disconnect
}
catch(PDOException $e) {
    echo"Error: ".$e->getMessage();
}
?>


Quote
[레벨:0]thefsb

# Post subject:Re: PDO: dyld: lazy symbol binding failed: Symbol not found: _cci_connect_ex

profile

registered: 12/03/2012

아이피: *.69.144.42

Excellent. I have managed to connect with PDO and Yii Active Record.

I look forward to seeing your changes to the Yii driver.

Thanks for your help.

Quote




You are either using a very old browser or a browser that is not supported.
In order to browse cubrid.org you need to have one of the following browsers:



Internet Explorer: Mozilla Firefox: Google Chrome: