【问题标题】:How to start MAMP sql server automatically on system startup如何在系统启动时自动启动 MAMP sql server
【发布时间】:2011-11-11 16:57:24
【问题描述】:

我正在使用 MAMP 包中包含的 SQL 服务器做一些工作。我想设置我的计算机,以便在我启动时自动启动 SQL 服务器。有谁知道实现这一点的最简单方法?

非常感谢,

D.

更新

当我尝试使用 Macmade 建议的 LaunchDaemon 文件时,出现以下错误:

110906 19:52:05 mysqld_safe Starting mysqld daemon with databases from /Applications/MAMP/db/mysql
110906 19:52:05 [Warning] Setting lower_case_table_names=2 because file system for /Applications/MAMP/db/mysql/ is case in$
110906 19:52:05 [Note] Plugin 'FEDERATED' is disabled.
^G/Applications/MAMP/Library/bin/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110906 19:52:05 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
110906 19:52:05 InnoDB: The InnoDB memory heap is disabled
110906 19:52:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
110906 19:52:05 InnoDB: Compressed tables use zlib 1.2.3
110906 19:52:05 InnoDB: Initializing buffer pool, size = 128.0M
110906 19:52:05 InnoDB: Completed initialization of buffer pool
110906 19:52:05  InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name ./ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
110906 19:52:05 mysqld_safe mysqld from pid file /Applications/MAMP/db/mysql/Doyuen-Kos-Mac-Pro.local.pid ended

这不起作用后,我查看了一些 MAMPs 目录,发现了一个名为 startMysql.sh 的脚本。当我从命令行运行它时,它会启动 sql server。完美的。如果它可能会起作用,我也尝试将它放入 LaunchDaemon 文件中。

<?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>KeepAlive</key>
    <false/>
    <key>Label</key>
    <string>mysql</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Applications/MAMP/bin/start.sh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>

这也不起作用。此外,奇怪的是,它似乎没有在控制台应用程序中产生任何类型的消息。

我还是卡住了。有人有什么想法吗?

【问题讨论】:

    标签: mysql macos mamp


    【解决方案1】:

    在mac中打开Textedit或者纯文本编辑器,粘贴进去

    对于阿帕奇

    <?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>info.mamp.start.apache</string>
        <key>ProgramArguments</key>
        <array>
          <string>/Applications/MAMP/Library/bin/apachectl</string>
          <string>start</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
      </dict>
    </plist>
    

    然后为mysql创建另一个文件

    <?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>info.mamp.start.mysql</string>
        <key>ProgramArguments</key>
        <array>
          <string>/Applications/MAMP/Library/bin/mysqld_safe</string>
          <string>--port=3306</string>
          <string>--socket=/Applications/MAMP/tmp/mysql/mysql.sock</string>
          <string>--lower_case_table_names=0</string>
          <string>--pid-file=/Applications/MAMP/tmp/mysql/mysql.pid</string>
          <string>--log-error=/Applications/MAMP/logs/mysql_error_log</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
        <key>UserName</key>
        <string>YOUR_USERNAME</string>
      </dict>
    </plist>
    

    请务必将“YOUR_USERNAME”替换为您帐户的用户名。

    将此文件分别保存为(或将文件移动到)/Library/LaunchDaemons/info.mamp.start.apache.plist 和 /Library/LaunchDaemons/info.mamp.start.mysql.plist。

    保存这个的文件夹是 /Library/LaunchDaemons/

    打开终端,输入

    cd /库/LaunchDaemons/ sudo chown root:wheel info.mamp.start.apache.plist sudo chown root:wheel info.mamp.start.mysql.plist

    完成。重启你的 Mac

    参考:http://stringfoo.com/2008/08/25/tutorial-launching-mamp-silently-on-startup/

    【讨论】:

    • 未来读者:在最新版本的 MAMP 和 MacOS 中,这些文件需要稍有不同。为获得最佳结果,请参考以下脚本了解详情:/Applications/MAMP/bin/startMysql.sh' and /Applications/MAMP/bin/startApache.sh' 甚至可以尝试直接运行这些脚本。
    • 在 /Applications/MAMP/bin/startMysql.sh(apache 工作正常)的情况下,我遵循了您的建议,但我发现的唯一区别是端口。改变了,但没有帮助。我仍然收到“拒绝访问”错误。你能解释一下如何直接运行这些脚本吗?
    【解决方案2】:

    您可能需要一个 LaunchDaemon 文件。

    在/Library/LaunchDaemons/目录下创建一个名为whatever.plist的文件,并放置以下内容。

    注意权限需要是:root:wheel / 644

    <?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>KeepAlive</key>
        <false/>
        <key>Label</key>
        <string>mysql</string>
        <key>ProgramArguments</key>
        <array>
            <string>/path/to/mysql/bin/mysqld_safe</string>
            <string>--user=_mysql</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
    </dict>
    </plist>
    

    【讨论】:

    • Macmade,非常感谢非常的回答。不幸的是,这不太奏效(见我上面的编辑)。还有其他想法吗?
    【解决方案3】:

    我刚刚想出了解决这个问题的一种可能方法。事实证明,MAMP 的付费版本MAMP Pro 具有简单的一键式功能,可将您的系统配置为在启动时启动 SQL 服务器。因此,花 50 美元购买付费版本是实现此功能的一种方法。这不是我希望的那种解决方案,但它完成了工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-04-03
      • 2015-03-30
      • 2015-08-07
      • 2018-03-01
      • 2012-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多