首页 文章

如何在BOOT上的macOS上启动MariaDB(如MySQL)?

提问于
浏览
6

我使用HomeBrew在一个全新的macOS 10.11服务器设置上安装了MariaDB . 当我手动启动它时服务器运行良好,但我无法让它在启动时自动启动(不是登录) . 我使用 sudo brew services start mariadb 在/ Library / LaunchDaemons中创建了一个launchd脚本,但它不知道在哪里 .

当这不起作用时,我尝试制作我自己的launchd脚本,首先让它运行 mysql.server start ,但是失败了 . 使用完整路径和适当的权限,但它永远不会工作 .

然后我从自制的自己的launchd plist中复制了一些代码并制作了我自己的plist,运行mysqld_safe,这也不起作用:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE truncated for easier forum viewing>
<plist version="1.0">
<dict>
    <key>Label</key>
        <string>com.macfixer.mariadb</string>
    <key>ProgramArguments</key>
        <array>
            <string>/usr/local/opt/mariadb/bin/mysqld_safe</string>
            <string>--datadir=/usr/local/var/mysql</string>
        </array>
    <key>WorkingDirectory</key>
        <string>/usr/local/var</string>

    <key>Disabled</key>
        <false/>
    <key>RunAtLoad</key>
        <true/>

    <key>StandardOutPath</key>
        <string>/logs/mariadb.out.log</string>
    <key>StandardErrorPath</key>
        <string>/logs/mariadb.error.log</string>
</dict>
</plist>

上面没有在mariadb错误日志或StandardErrorPath错误日志中留下任何痕迹 . 但是它确实在StandardOutPath日志中留下了一些内容 . 看起来mariadb正在启动,它只是......不是 .

180326 08:37:27 mysqld_safe登录到'/usr/local/var/log/mysqld-error.log' . 180326 08:37:28 mysqld_safe用/ usr / local / var / mysql中的数据库启动mysqld守护进程

但同样,如果我在计算机启动并登录后运行 mysql.server start ,MariaDB根本就没有问题 . 但是从launchd开始,它似乎只是默默地立即退出 .

1 回答

  • 3

    原来这个非常恼人的问题有一个非常简单的答案 .

    使_mysql拥有的MariaDB安装: sudo chown -R _mysql: /usr/local/var/mysql

    就是这样!完成后,它完美地工作 .

    为什么自制软件安装程序不会处理它安装的软件的权限?为什么数据库没有写入自己的错误日志,说有权限问题?为什么没有来自launchd脚本的stderr或stdout暗示存在权限问题,或者根本没有任何问题?

    ... 我不知道 . 我只是把它称为bug并继续前进 . 但是更改mariadb安装文件夹的权限完全解决了问题 . 这是一个巨大的解脱 .

相关问题