Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Re^2: Getting DBD-mysql to work with Mac OS X Lion

by bmckenzie (Sexton)
on Jan 13, 2012 at 17:38 UTC ( [id://947779]=note: print w/replies, xml ) Need Help??


in reply to Re: Getting DBD-mysql to work with Mac OS X Lion
in thread Getting DBD-mysql to work with Mac OS X Lion

Yes, I installed XCode. However, it never occurred to me that a good solution would be the one I'm more accustomed to -- getting some packaged distribution of Perl and managing it myself (without affecting the actual OS). Sounds great.

If possible, I'd like to get this working before taking the Unix crash course, so I have to ask: if there are two copies of Perl on the same machine, how do I keep the OS (and me) from getting confused when "perl" is typed on the command line -- will I have to use a different shebang line in scripts?

A monk's post (in 2005) suggests that there will not be a problem with paths, but that I should uninstall DBI and reinstall it with the new Perl. Still true?

Thanks again,

Bruce
  • Comment on Re^2: Getting DBD-mysql to work with Mac OS X Lion

Replies are listed 'Best First'.
Re^3: Getting DBD-mysql to work with Mac OS X Lion
by luis.roca (Deacon) on Jan 13, 2012 at 18:48 UTC

    “ if there are two copies of Perl on the same machine, how do I keep the OS (and me) from getting confused when "perl" is typed on the command line -- will I have to use a different shebang line in scripts? ”

    If you're using Macports it will likely be: #!/opt/local/bin/perl and if you install modules through the ports library (e.g., $ sudo port install p5-Data-Dumper). However Macports does not have every module available so you will likely still have to navigate to that directory and install modules from there using MCPAN, cpanminus etc.

    To confirm the directory you can just use Mac OSX's Spotlight:

    1. (hit the Command and Spacebar keys at the same time). Type in 'Perl'
    2. Select 'Show all' at the top of the results. A window will appear.
    3. Under the window's search field select the 'plus' icon.
    4. Two drop down menus will appear in the row below. Change the second one to 'Folder'
    5. You will likely now see at least several folders (directories) with the name 'Perl'. Select the folders to see at the bottom of the window their exact location.

    Another tip: If you need to navigate to a specific location within a directory on the command line you can drag and drop that folder to the Mac OSX Terminal (The name of Apple's command line program). That will show the path. Place cd (change directory to:) in front of that path name and it takes you there. A nice trick for moving to something deeply nested.

    "...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." — Don Quixote
Re^3: Getting DBD-mysql to work with Mac OS X Lion
by desertrat (Sexton) on Jan 13, 2012 at 17:52 UTC

    You don't need to re-install perl, the built-in one works just fine, but the MySQL install from oracle just does not work with DBI and MySQL DBD client. Use the MacPorts mysql5 and mysql5 +server ports and everything falls into place. See my travails here <a href="http://groups.google.com/group/perl.dbi.users/browse_thread/thread/616d94b675c14b10?hl=en#"

      “ You don't need to re-install perl, the built-in one works just fine ... ”

      No one suggested re-installing Perl but to create a second install for development purposes :-) Working with the system Perl can be fine until it isn't and then it's a huge headache (e.g., Installing modules and plugins to included modules in the same location). This became more true with Snow Leopard and has been documented, among other places, here: How Do You Use Manage Perl Modules When Using A Package Manager, here: Perl Strategy For A New Snow Leopard User and here: Perl Script Problems

      * Some of these problems were due to Snow Leopard's 32-bit/64-bit issues which should no longer exist in Lion

      UPDATE
      Same Day, 13.Jan.2012 :: 2:10 PM :: Added other links discussing maintaining separate Perl builds on Mac OSX and note on 32-bit/64-bit (Snow Leopard).


      "...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." — Don Quixote
      Hi,

      Well I've spent some time learning about OS X Unix with the excellent Lynda.com tutorial. I uninstalled the Oracle mySQL and installed the one from MacPorts. It seems to be working OK -- I dragged my old DBs from the Windows PC into /opt/local/var/db/mysql5 and they show up in phpMyAdmin as expected.

      Alas, all this work does not seem to have impressed DBD::MySQL, which still fails in require as follows:

      Can't load '/Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mys +ql/mysql.bundle' for module DBD::mysql: dlopen(/Library/Perl/5.12/dar +win-thread-multi-2level/auto/DBD/mysql/mysql.bundle, 1): Library not +loaded: libmysqlclient.18.dylib Referenced from: /Library/Perl/5.12/d +arwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle Reason: image n +ot found at /System/Library/Perl/5.12/darwin-thread-multi-2level/Dyna +Loader.pm line 204. at /Users/Bruce/Sites/public_html/cgi-bin/ptest.p +l line 17 Compilation failed in require at /Users/Bruce/Sites/public_ +html/cgi-bin/ptest.pl line 17. BEGIN failed--compilation aborted at / +Users/Bruce/Sites/public_html/cgi-bin/ptest.pl line 17.

      The perl script ptest.pl is a simple "Hello, World" that runs without complaint if I comment out the line "use DBD::MySQL;" Diagnosis with otool was recommended in some of the online discussion. I ran otool -L /Library/Perl/5.12/darwin-thread-multi-2level/auto/DBD/mysql/mysql.bundle I got this result:

      libmysqlclient.18.dylib (compatibility version 18.0.0, current ver +sion 18.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current v +ersion 159.1.0)

      Suggestions for further troubleshooting are very welcome. I suppose the MacPorts perl distro might work better with their mySQL, but it seems like there ought to be a simpler solution.

      Cheers,

      Bruce

        Library not loaded: libmysqlclient.18.dylib .

        Where is libmysqlclient.18.dylib?

        What do you get when you run  ldd libmysqlclient.18.dylib?

        Sorry to hear you're still having trouble. Could you please post the code that is failing? Specifically what does your #! line look like at the top? Did you install the DBD module in the Macports /opt directory? Other than that I would say to load the library it's asking for through Macports or, even before that, do a search to see if and where the current version is on your machine.


        "...the adversities born of well-placed thoughts should be considered mercies rather than misfortunes." — Don Quixote

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://947779]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (5)
As of 2024-04-19 23:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found