Bacula-users

Re: [Bacula-users] [Bacula-devel] Ubuntu 16: make_mysql_tables misbehavior "Invalid default value for"

2016-06-16 04:28:08
Subject: Re: [Bacula-users] [Bacula-devel] Ubuntu 16: make_mysql_tables misbehavior "Invalid default value for"
From: Kern Sibbald <kern AT sibbald DOT com>
To: Heitor Faria <heitor AT bacula.com DOT br>
Date: Thu, 16 Jun 2016 10:27:08 +0200
Hello Heitor,

This is fixed in 7.4.1.  The problem originates from MySQL version 5.7 
no longer permitting a DEFAULT 0 on a timestamp.  However, a timestamp 
in MySQL is nothing other than a Unix/Linux time/date, which is nothing 
other than a simple integer, and the value 0 is a perfectly valid 
timestamp value.  Thus this change by MySQL does absolutely nothing 
other than make certain applications incompatible -- too bad.

The solution is to upgrade to 7.4.1 or if you are running on Ubuntu 
16.04 you will need the patch that is in the public repository (or my 
email).  In my recent testing of MySQL 5.7, I found it out of the box 10 
times slower than Postgres out of the box (both on Ubuntu 16.04), so for 
me, despite the fact that Postgres is a bit harder to initially 
configure, Postgres wins hands down for use with Bacula.

Best regards,
Kern

On 06/15/2016 10:49 PM, Heitor Faria wrote:
> Hello, Kern,
>
> Another Ubuntu 16 issue is running the make_mysql_tables results in error:
>
> ERROR 1067 (42000) at line 91: Invalid default value for 'CleaningDate'
> ERROR 1067 (42000) at line 111: Invalid default value for 'SchedTime'
> ERROR 1067 (42000) at line 145: Invalid default value for 'SchedTime'
> ERROR 1067 (42000) at line 187: Invalid default value for 'Date'
> ERROR 1067 (42000) at line 201: Invalid default value for 'CreateTime'
> ERROR 1067 (42000) at line 225: Invalid default value for 'FirstWritten'
> ERROR 1067 (42000) at line 321: Invalid default value for 'Time'
>
> The workaround for this is:
>
> sed -i s/'DATETIME DEFAULT 0'/'DATETIME'/g 
> /etc/bacula/scripts/make_mysql_tables
>
> I wasn't able to reproduce it in any Debian yet.
> If it is needed I'll be glad to open a bug report.
>
> Regards,
>
> ----- Original Message -----
>> From: "Kern Sibbald" <kern AT sibbald DOT com>
>> To: bacula-users AT lists.sourceforge DOT net, "bacula-devel" <bacula-devel 
>> AT lists.sourceforge DOT net>
>> Sent: Wednesday, June 15, 2016 4:51:18 AM
>> Subject: Re: [Bacula-devel] [Bacula-users] Error Director 
>> /usr/lib64/libbaccats-7.4.0.so: undefined symbol: mysql_init
>> Hello,
>>
>> To everyone who is having problems building Bacula to support MySQL
>> version 5.7.x.  This is indeed a linking problem.  This version is found
>> on Ubuntu 16.04, and probably other OSes with the most recent MySQL
>> releases.  MySQL has eliminated the libmysqlclient_r.so library, which
>> is the thread safe library by making the standard libmysqlclient.so
>> thread safe.  While this is logical and desirable, to do so, they
>> modified the way that MySQL is linked and rely on mysql_config to
>> provide the correct parameters.  All is OK to that point.
>> Unfortunately, since Bacula has a lot of detection code for old versions
>> of MySQL, the Bacula implementation was not quite up to par.
>>
>> I have now fixed that problem and pushed a somewhat complicated patch
>> into the Bacula public repositories for Branch-7.0, Branch-7.2, and
>> Branch-7.4.
>>
>> If you want a quickie work around without getting the latest code:
>>
>> - cd <bacula>
>> - run your ./configure
>>   - cd <bacula>/src/cats
>> - edit Makefile
>> - Change the line that reads:
>> MYSQL_LIBS =
>> to
>> MYSQL_LIBS = -L/usr/lib/x86_64-linux-gnu -lmysqlclient -lpthread -lz -lm
>> -lrt -ldl
>> - cd <bacula>
>> - make -j9
>> - ...
>>
>> You should then have a Bacula that is correctly built.  Note: it is
>> possible that the mysqlclient library is in a different place on your
>> system.  To get the correct values to assign to MYSQL_LIBS, on your
>> system simply do:
>>
>> mysql_setup --libs_r
>>
>> A final note about MySQL: for version 5.7, it seems that either they
>> have a bug or more likely some default sync/fsync has been made the
>> default, which means that using an out of the box MySQL and delivered on
>> Ubuntu 16.04 is 10-15 times slower than either PostgreSQL out of the box
>> or prior MySQL versions.  For me, this makes even running regression
>> tests on that particular MySQL totally unusable (i.e. the normal set of
>> regression tests run in about 2 hours; with this version of MySQL, it
>> will probably take between 20 and 30 hours).  Hopefully Ubuntu or Oracle
>> (MySQL) will fix this problem, which I will officially report today.
>>
>> Best regards,
>> Kern
>>
>> PS:
>>
>> If any of you are C/C++ experienced Linux or Windows developers, Bacula
>> Systems is hiring two new developers.  These jobs are in Switzerland.
>> If you are interested, please see:
>>
>>      http://www.baculasystems.com/company/careers
>>
>>
>> On 01/30/2016 03:16 AM, Phil Stracchino wrote:
>>> On 01/29/16 19:41, Hector Javier Agudelo Corredor wrote:
>>>> HI team
>>>>
>>>>
>>>> I installed centos 6.7.
>>>>
>>>> I have installed bacula 7.4 with postgres  5.7.10 but when I set the
>>>> mysql password in the file director.
>>> [...]
>>>
>>>> But when I test settings file manager with the command
>>>>
>>>> bacula-dir sudo -tc /etc/bacula/bacula-dir.conf
>>>>
>>>> get the following error:
>>>>
>>>> bacula-dir: symbol lookup error: /usr/lib64/libbaccats-7.4.0.so
>>>> <http://libbaccats-7.4.0.so>: undefined symbol: mysql_init
>>> Ummmmm......   What's wrong with this picture?
>>>
>>> Did you mean you installed with *MySQL* 5.7.10?
>>>
>>>
>>> Personally, if I were you, I would not be using MySQL 5.7 yet.  It seems
>>> to still have some teething issues, some of them serious.  You might try
>>> backing out to MySQL (or Percona Server) 5.6.28.
>>>
>>> That said, as Michael suggested, it looks as though there is something
>>> wrong (or simply odd) about either your configure options or your build
>>> environment.
>>>
>>>
>>
>> ------------------------------------------------------------------------------
>> What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
>> patterns at an interface-level. Reveals which users, apps, and protocols are
>> consuming the most bandwidth. Provides multi-vendor support for NetFlow,
>> J-Flow, sFlow and other flows. Make informed decisions using capacity 
>> planning
>> reports. 
>> http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381
>> _______________________________________________
>> Bacula-devel mailing list
>> Bacula-devel AT lists.sourceforge DOT net
>> https://lists.sourceforge.net/lists/listinfo/bacula-devel


------------------------------------------------------------------------------
What NetFlow Analyzer can do for you? Monitors network bandwidth and traffic
patterns at an interface-level. Reveals which users, apps, and protocols are 
consuming the most bandwidth. Provides multi-vendor support for NetFlow, 
J-Flow, sFlow and other flows. Make informed decisions using capacity planning
reports. http://pubads.g.doubleclick.net/gampad/clk?id=1444514421&iu=/41014381
_______________________________________________
Bacula-users mailing list
Bacula-users AT lists.sourceforge DOT net
https://lists.sourceforge.net/lists/listinfo/bacula-users

<Prev in Thread] Current Thread [Next in Thread>