← Back to team overview

maria-developers team mailing list archive

Re: passwordless mariadb root login with auht_socket in Debian

 

Manually executing the command result in this error :
ERROR: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USE mysql; DELIMITER //; CREATE PROCEDURE debian_plugin_install(IN plugin_name C' at line 1
        150223 22:44:06 [ERROR] Aborting

By adding \n between each of these statements we can see that the statement causing the syntax error is "DELIMITER //;", it seems that DELIMITER is only used by mysql client and the that mysqld doesnt recognize it as an internal command.


Le 23/02/2015 21:52, Otto Kekäläinen a écrit :
Daniel, anybody..?

2015-02-20 22:52 GMT+02:00 Otto Kekäläinen <otto@xxxxxxxxx>:
Hello Daniel!

It seems there are some issues with the passwordless login patch you
sent me some weeks ago (https://github.com/ottok/mariadb-10.0/pull/3)

Can you help me debug the failing postinst script?


I added 'set -x' to the mariadb-server-10.0.postinst script and when
it is run during the configure phase it will exit with code 1 and make
dpkg abort the installation.

Last lines of execution:
  SET sql_log_bin=0;
  CREATE TABLE IF NOT EXISTS plugin (name char(64) COLLATE utf8_bin NOT
NULL DEFAULT '\'''\'',    dl char(128) COLLATE utf8_bin NOT NULL
DEFAULT '\'''\'',    PRIMARY KEY (name)) ENGINE=MyISAM DEFAULT
CHARSET=utf8 COLLATE=utf8_bin COMMENT='\''MySQL plugins'\'';'
+ logger -p daemon.err -t mysqld_safe -i
+ /usr/sbin/mysqld --bootstrap --user=mysql --skip-grant-tables
--default-storage-engine=myisam --plugin-load-add=auth_socket
+ set -e
+ echo 'SET sql_log_bin=0; USE mysql; DELIMITER //; CREATE PROCEDURE
debian_plugin_install(IN plugin_name CHAR(50), IN soname CHAR(50))
BEGIN DECLARE CONTINUE HANDLER FOR NOT FOUND  EXECUTE
inst_plug; set @plugin_name=plugin_name; set @soname=soname ;set
@install_plugin=CONCAT("INSTALL PLUGIN ",@plugin_name," SONAME '\''",
@soname, "'\''");PREPARE inst_plug FROM @install_plugin ;
select PLUGIN_NAME INTO @a from  information_schema.plugins where
PLUGIN_NAME=@plugin_name AND PLUGIN_STATUS='\''ACTIVE'\'' AND
PLUGIN_TYPE='\''AUTHENTICATION'\'' AND PLUGIN_LIBRARY LIKE
concat(@soname,'\''%'\''
); DEALLOCATE PREPARE inst_plug; END// CALL
debian_plugin_install('\''unix_socket'\'', '\''auth_socket'\'') //
DROP PROCEDURE debian_plugin_install//'
+ logger -p daemon.err -t mysqld_safe -i
+ /usr/sbin/mysqld --bootstrap --user=mysql --skip-grant-tables
--default-storage-engine=myisam --plugin-load-add=auth_socket
timo@debunstable:~$ echo $?
1
timo@debunstable:~$ echo $?
0

This implies that the exit code from the line '/usr/sbin/mysqld
--bootstrap --user=mysql --skip-grant-tables
--default-storage-engine=myisam --plugin-load-add=auth_socket' is 1.


Any ideas why?


If you want to test it yourself, add to you apt sources the test repo

deb http://labs.seravo.fi/~otto/mariadb-repo/ mariabd-10.0-sid-amd64/


Follow ups

References