I’ve not looked at compiling and running Drizzle on my server for the past four weeks. Well overdue time for a check and see how it’s going. I saw in today’s planet.mysql.com by Eric Day a new dependency is needed. libdrizzle 0.2.0 now in Drizzle is now required, so I started there.
cd ~/bzr bzr branch lp:libdrizzle cd libdrizzle ./config/autorun.sh ./configure make sudo make install
No problems there, also documented at the Drizzle Wiki. Great to see the docs up to date. I see my old work on starting the compiling page still relevant. Tested on CentOS 5 and Mac OS/X 10.5
Compiling drizzle was not much more difficult.
cd ~/bzr/drizzle bzr update make distclean ./config/autorun.sh ./configure --prefix=/home/drizzle/deploy make make install
The problems happened when I started drizzle. Initially I was using bin/drizzled_safe, but it was recommended via IRC#drizzle I stick with sbin/drizzled
sbin/drizzled & error while loading shared libraries: libprotobuf.so.2: cannot open shared object file: No such file or directory
An investigation of Google Proto Buffers.
$ protoc --version libprotoc 2.0.2
I see that protobuf 2.0.3 is now available, but this was not the problem.
I got around the problem by specifying the current library path:
$ LD_LIBRARY_PATH=/usr/local/lib sbin/drizzled &
I corrected this problem by adding /usr/local/lib to the default ld path, both the libdrizzle and libprotobuf libs are located there.
$ echo "/usr/local/lib" > /etc/ld.so.conf.d/drizzle.conf $ ldconfig $ ls -l /usr/local/lib total 37240 -rw-r--r-- 1 root root 1194602 Mar 31 17:42 libdrizzle.a -rwxr-xr-x 1 root root 940 Mar 31 17:42 libdrizzle.la lrwxrwxrwx 1 root root 19 Mar 31 17:42 libdrizzle.so -> libdrizzle.so.0.0.2 lrwxrwxrwx 1 root root 19 Mar 31 17:42 libdrizzle.so.0 -> libdrizzle.so.0.0.2 -rwxr-xr-x 1 root root 1117979 Mar 31 17:42 libdrizzle.so.0.0.2 -rw-r--r-- 1 root root 12199302 Nov 30 23:32 libprotobuf.a -rwxr-xr-x 1 root root 836 Nov 30 23:32 libprotobuf.la lrwxrwxrwx 1 root root 20 Nov 30 23:32 libprotobuf.so -> libprotobuf.so.2.0.0 lrwxrwxrwx 1 root root 20 Aug 27 2008 libprotobuf.so.0 -> libprotobuf.so.0.0.0 -rwxr-xr-x 1 root root 5027949 Aug 27 2008 libprotobuf.so.0.0.0 lrwxrwxrwx 1 root root 20 Nov 30 23:32 libprotobuf.so.2 -> libprotobuf.so.2.0.0 -rwxr-xr-x 1 root root 5586965 Nov 30 23:32 libprotobuf.so.2.0.0 -rw-r--r-- 1 root root 9264068 Nov 30 23:32 libprotoc.a -rwxr-xr-x 1 root root 852 Nov 30 23:32 libprotoc.la lrwxrwxrwx 1 root root 18 Nov 30 23:32 libprotoc.so -> libprotoc.so.0.0.0 lrwxrwxrwx 1 root root 18 Nov 30 23:32 libprotoc.so.0 -> libprotoc.so.0.0.0 -rwxr-xr-x 1 root root 3645396 Nov 30 23:32 libprotoc.so.0.0.0 drwxr-xr-x 2 root root 4096 Mar 31 17:42 pkgconfig
Starting
$ sbin/drizzled & InnoDB: The InnoDB memory heap is disabled InnoDB: Mutexes and rw_locks use GCC atomic builtins. 090331 18:38:08 InnoDB: highest supported file format is Barracuda. InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! 090331 18:38:08 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 090331 18:38:08 InnoDB Plugin 1.0.3 started; log sequence number 46419 sbin/drizzled: ready for connections. Version: '2009.03.970-development' socket: '' port: 4427 Source distribution
Verifying
$ bin/drizzle -uroot Welcome to the Drizzle client.. Commands end with ; or g. Your Drizzle connection id is 1 Server version: 2009.03.970-development Source distribution Type 'help;' or 'h' for help. Type 'c' to clear the buffer. drizzle> select version(); +-------------------------+ | version() | +-------------------------+ | 2009.03.970-development | +-------------------------+ 1 row in set (0.00 sec) drizzle> exit
Sweet! Now to try some testing & benchmarking before the barrage of conferences next month, 2009 MySQL Camp, Percona Performance Conference and MySQL Conference & Expo.
I’m going to check out The Juice Database Benchmark next as a more realistic benchmark to DBT2 and sysbench.