Hi Otto,

From IRC (#debian-mysql) on 28 September:

[21:42:11] <elbrus> ottok: dbconfig-common parses /etc/mysql/debian.cnf
[21:42:22] <elbrus> did the content of that file change?
[21:42:36] <elbrus> I'm now only seeing this in my unstable lxc
[21:42:46] <elbrus> # Automatically generated for Debian scripts. DO NOT
TOUCH!
[21:43:04] <elbrus> shouldn't there be some root set (with password)?
[21:44:28] <elbrus> at least it seems to me that the test fails due to
this empty config file
[21:44:44] -*- elbrus is generating a testing lxc to check
[22:12:17] <Skuggen> I think both mysql and mariadb have moved away from
root password as default, and instead use unix socket authentication
[22:12:54] <Skuggen> So system root can log in without a password
[22:20:49] <elbrus> # cat /etc/mysql/debian.cnf
[22:20:49] <elbrus> # Automatically generated for Debian scripts. DO NOT
TOUCH!
[22:20:49] <elbrus> [client]
[22:20:49] <elbrus> host     = localhost
[22:20:49] <elbrus> user     = root
[22:20:49] <elbrus> password =
[22:20:49] <elbrus> socket   = /var/run/mysqld/mysqld.sock
[22:20:49] <elbrus> [mysql_upgrade]
[22:20:49] <elbrus> host     = localhost
[22:20:49] <elbrus> user     = root
[22:20:49] <elbrus> password =
[22:20:49] <elbrus> socket   = /var/run/mysqld/mysqld.sock
[22:21:28] <elbrus> but in the current implementation dbconfig-common
still processes the file (at least in the test)
[22:21:48] <elbrus> I'll check tomorrow if the production code does so too
[22:27:10] <elbrus> well, at least
https://salsa.debian.org/debian/dbconfig-common/-/commit/252b921f6a6a50e6d98d1c11bb71f2810d7f2278
is still in place
[22:27:14] <elbrus> so that needs updating
[22:27:55] <elbrus> which means that MariaDB in unstable broke packages
that need dbconfig-common to install
[22:28:19] <elbrus> not saying MariaDB needs to fix it, but it shouldn't
migrate to testing as-is

So, the summary is that dbconfig-common as it currently is relies on
/etc/mysql/debian.cnf to contain at least the username for connecting
(and the password for systems that don't do socket authentication):

    # Now we are pretty sure we can use the password
    # Command taken from mysql-server-5.5.postinst script
    dbc_dbadmpass="$(sed -n 's/^[     ]*password *= *// p'
/etc/mysql/debian.cnf | head -n 1)"
    # We also want to obtain the dbc_dbadmin from this file as MySQL has
    # debian-sys-maint, but MariaDB may have root.
    dbc_dbadmin="$(sed -n 's/^[     ]*user *= *// p'
/etc/mysql/debian.cnf | head -n 1)"

I implemented this after a discussion I had with you at FOSDEM some
years ago. What's the proposal I do now?

Paul

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to