在启动时启动 MariaDB(在 macOS Catalina 上)

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

我有一台运行 macOS 10.15 (Catalina) 的 Mac mini,并且我已通过自制软件安装了 mariadb 10.5.9。

一切运行良好且正常,但有一个例外:我无法让数据库在系统启动时启动。它尝试使用brew安装的launchd项目。但由于某种原因它失败了。一旦登录到计算机,如果我以 root 身份运行相同的命令,数据库就会立即启动并且运行没有问题。

我过去也遇到过类似的问题,这些问题是由

/usr/local/var/mysql
上的权限引起的,但这似乎不是这里的问题。

具体细节如下。这是我用来启动服务器的 launchd 项目。它正在运行,我可以在错误日志中看到数据库尝试启动。

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>homebrew.mxcl.mariadb</string> <key>ProgramArguments</key> <array> <string>/usr/local/opt/mariadb/bin/mysqld_safe</string> <string>--datadir=/usr/local/var/mysql</string> </array> <key>RunAtLoad</key> <true/> <key>WorkingDirectory</key> <string>/usr/local/var</string> </dict> </plist>
因此尝试启动数据库,但失败了。但是,当我在启动后在终端中运行相同的命令时,数据库会正常启动。但如果我忘记这样做,世界当然会爆炸,或者至少会发生一些不好的事情。

sudo /usr/local/opt/mariadb/bin/mysqld_safe --datadir=/usr/local/var/mysql
当 launchd plist 尝试启动服务器时,会在服务器的错误日志中创建以下内容:

210626 04:12:38 mysqld_safe Starting mariadbd daemon with databases from /usr/local/var/mysql 2021-06-26 4:12:39 0 [Note] /usr/local/opt/mariadb/bin/mariadbd (mysqld 10.5.9-MariaDB) starting as process 468 ... 2021-06-26 4:12:39 0 [Warning] Could not increase number of max_open_files to more than 256 (request: 32186) 2021-06-26 4:12:39 0 [Warning] Changed limits: max_open_files: 256 max_connections: 151 (was 151) table_cache: 200 (was 2000) 2021-06-26 4:12:39 0 [Warning] Setting lower_case_table_names=2 because file system for /usr/local/var/mysql/ is case insensitive /usr/local/opt/mariadb/bin/mariadbd: Please consult the Knowledge Base to find out how to run mysqld as root! 2021-06-26 4:12:39 0 [ERROR] Aborting 210626 04:12:39 mysqld_safe mysqld from pid file /usr/local/var/mysql/Home-Server.local.pid ended
有一些

warnings

,但唯一的错误只是一条消息
Aborting
。它没有说“为什么”它正在中止。警告之一是否导致了问题?如果有,是哪一个?如果我从终端执行此操作,为什么服务器可以正常启动?当然,文件系统的最大连接数和区分大小写是相同的。
我很茫然。

我找到了解决办法!我不确定它是如何或为什么工作的,但是如果你将
mysql database macos mariadb
1个回答
0
投票
添加到 launchd 运行的命令中,mariadb 就能够正常启动!这是没有意义的,因为这些 launchdeamons

已经

以 root 身份运行,所以添加 
sudo 不应该做任何事情。然而,它解决了它!去算算吧。
...
<key>ProgramArguments</key>
    <array>
        <string>/usr/bin/sudo</string>
        <string>/usr/local/opt/mariadb/bin/mariadbd-safe</string>
        <string>--datadir=/usr/local/var/mysql</string>
    </array>
...


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