为什么在 Linux Mint 上启动 MariaDB 时 /etc/mysql/debian-start 会出现此错误?

问题描述 投票:0回答:1

我正在 Linux Mint 20.2 上设置多个 MariaDB 实例。我已经成功设置了第一个,看起来基本上没问题(我可以连接到数据库,并通过查询 MariaDB 变量,可以验证套接字、端口等是否与我在配置文件中放入的内容匹配)。但是,我收到了一个令人困惑的错误,该错误不是来自服务器进程本身,而是来自关联的 systemd 脚本。这就是我启动服务然后检查状态时发生的情况:

root@TMG-Toshiba:/var/local/mysql/toot# systemctl status mariadb@toot
● [email protected] - MariaDB 10.3.32 database server (multi-instance toot)
     Loaded: loaded (/lib/systemd/system/[email protected]; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2021-12-07 18:35:11 GMT; 2s ago
       Docs: man:mysqld(8)
             https://mariadb.com/kb/en/library/systemd/
    Process: 7776 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
    Process: 7781 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITIONtoot (code=exited, status=0/SUCCESS)
    Process: 7790 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery --defaults-file=/etc/mysql>
    Process: 7881 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITIONtoot (code=exited, status=0/SUCCESS)
    Process: 7883 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
   Main PID: 7850 (mysqld)
     Status: "Taking your SQL requests now..."
      Tasks: 30 (limit: 4137)
     Memory: 85.9M
     CGroup: /system.slice/system-mariadb.slice/[email protected]
             └─7850 /usr/sbin/mysqld --defaults-file=/etc/mysql/conf.d/mytoot.cnf

Dec 07 18:35:11 TMG-Toshiba systemd[1]: Starting MariaDB 10.3.32 database server (multi-instance toot)...
Dec 07 18:35:11 TMG-Toshiba mysqld[7850]: 2021-12-07 18:35:11 0 [Note] /usr/sbin/mysqld (mysqld 10.3.32-MariaDB-0ubuntu0.20.04.1) starting as process 7850 ...
Dec 07 18:35:11 TMG-Toshiba systemd[1]: Started MariaDB 10.3.32 database server (multi-instance toot).
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7888]: Looking for 'mysql' as: /usr/bin/mysql
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7888]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7888]: Version check failed. Got the following error when calling the 'mysql' command line client
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7888]: ERROR 2002 (HY000): Can't connect to MySQL server on 'localhost' (115)
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7888]: FATAL ERROR: Upgrade failed
Dec 07 18:35:12 TMG-Toshiba /etc/mysql/debian-start[7897]: Checking for insecure root accounts.
Dec 07 18:35:12 TMG-Toshiba debian-start[7900]: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

它是否会抱怨无法通过套接字连接,因为我在“client.cnf”部分中指定了“protocol = tcp”(我这样做是为了输入“mysql -P 3307 .. ., mysql -P 3308" 等,而不必输入套接字路径)?但无论如何,它是否应该运行该脚本? “debian-start”脚本由 [email protected] 调用,但如果您查看“debian-start”脚本本身,它实际上包含这一行:

 NOTE: This file is read only by the traditional SysV init script, not systemd.

那么我应该从 [email protected] 中删除对 debian-start 的调用吗?

mariadb systemd linux-mint
1个回答
0
投票

我也遇到了同样的问题,刚刚解决了。

在此页面您可以找到丢失文件的内容 (

/etc/mysql/debian-start
)。您只需在预期位置创建文件,设置其内容,授予其执行权限(例如
chmod 755
),然后重新启动服务即可。

请注意,我不是该脚本的作者,使用它的风险由您自行承担。对我来说,它解决了问题,我并不担心安全性,因为我目前正在我建议仅用于测试的机器上运行所有内容。

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.