How can I install DBD::mysql on Debian?

742 Views Asked by At

Having issues getting DBD::mysql installed on Debian. This is actually the Debian-based Apache docker image which comes with Perl 5.36. Despite pre-installing libdbd-mysql-perl, libmariadb-dev, libmariadbdev-compat and every other seemingly related package, I am still getting the following build failure:

Running Mkbootstrap for mysql ()
chmod 644 "mysql.bs"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- mysql.bs blib/arch/auto/DBD/mysql/mysql.bs 644
x86_64-linux-gnu-gcc -c  -I/usr/local/lib/x86_64-linux-gnu/perl/5.36.0/auto/DBI -I/usr/include/mariadb -I/usr/include/mariadb/mysql -g  -D_REENTRANT -D_GNU_SOURCE -DDEBIAN -fwrapv -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -O2 -g   -DVERSION=\"5.001\" -DXS_VERSION=\"5.001\" -fPIC "-I/usr/lib/x86_64-linux-gnu/perl/5.36/CORE"   dbdimp.c
dbdimp.c: In function 'mysql_dr_connect':
dbdimp.c:1407:31: error: 'MYSQL_OPT_GET_SERVER_PUBLIC_KEY' undeclared (first use in this function); did you mean 'MYSQL_SERVER_PUBLIC_KEY'?
 1407 |           mysql_options(sock, MYSQL_OPT_GET_SERVER_PUBLIC_KEY, &server_get_pubkey);
      |                               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                               MYSQL_SERVER_PUBLIC_KEY
dbdimp.c:1407:31: note: each undeclared identifier is reported only once for each function it appears in
dbdimp.c:1464:22: error: 'SSL_MODE_PREFERRED' undeclared (first use in this function)
 1464 |           ssl_mode = SSL_MODE_PREFERRED;
      |                      ^~~~~~~~~~~~~~~~~~
dbdimp.c:1466:26: error: 'SSL_MODE_VERIFY_IDENTITY' undeclared (first use in this function)
 1466 |               ssl_mode = SSL_MODE_VERIFY_IDENTITY;
      |                          ^~~~~~~~~~~~~~~~~~~~~~~~
dbdimp.c:1468:26: error: 'SSL_MODE_VERIFY_CA' undeclared (first use in this function)
 1468 |               ssl_mode = SSL_MODE_VERIFY_CA;
      |                          ^~~~~~~~~~~~~~~~~~
dbdimp.c:1470:26: error: 'SSL_MODE_REQUIRED' undeclared (first use in this function)
 1470 |               ssl_mode = SSL_MODE_REQUIRED;
      |                          ^~~~~~~~~~~~~~~~~
dbdimp.c:1471:37: error: 'MYSQL_OPT_SSL_MODE' undeclared (first use in this function); did you mean 'MYSQL_OPT_SSL_CRL'?
 1471 |             if (mysql_options(sock, MYSQL_OPT_SSL_MODE, &ssl_mode) != 0) {
      |                                     ^~~~~~~~~~~~~~~~~~
      |                                     MYSQL_OPT_SSL_CRL
dbdimp.c:1480:37: error: 'SSL_MODE_DISABLED' undeclared (first use in this function)
 1480 |             unsigned int ssl_mode = SSL_MODE_DISABLED;
      |                                     ^~~~~~~~~~~~~~~~~
dbdimp.c: In function 'mysql_st_prepare':
dbdimp.c:2407:24: warning: assignment to 'my_bool *' {aka 'char *'} from incompatible pointer type '_Bool *' [-Wincompatible-pointer-types]
 2407 |           bind->is_null=      &(fbind->is_null);
      |                        ^
dbdimp.c: In function 'mysql_describe':
dbdimp.c:3198:22: warning: assignment to 'my_bool *' {aka 'char *'} from incompatible pointer type '_Bool *' [-Wincompatible-pointer-types]
 3198 |       buffer->is_null= &(fbh->is_null);
      |                      ^
dbdimp.c:3199:20: warning: assignment to 'my_bool *' {aka 'char *'} from incompatible pointer type '_Bool *' [-Wincompatible-pointer-types]
 3199 |       buffer->error= (bool*) &(fbh->error);
      |                    ^
dbdimp.c: In function 'mysql_db_quote':
dbdimp.c:4646:12: warning: implicit declaration of function 'mysql_real_escape_string_quote'; did you mean 'mysql_real_escape_string'? [-Wimplicit-function-declaration]
 4646 |     sptr+= mysql_real_escape_string_quote(imp_dbh->pmysql, sptr,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |            mysql_real_escape_string
make: *** [Makefile:358: dbdimp.o] Error 1
  DVEEDEN/DBD-mysql-5.001.tar.gz
  /usr/bin/make -- NOT OK

Seems SSL related perhaps, but openssl is up to date.

0

There are 0 best solutions below