mysql - Snow Leopard下的Macports mysql5设置

标签 mysql osx-snow-leopard macports

我已经设法让我的安装全部搞砸了,因为我是一个新手,搞砸是我擅长的。

1)任何人都可以引用一组可靠的设置说明吗?

2)我可以通过macports卸载并从头开始(密码和所有)吗?我试过了,在卸载后一堆 mysql 目录卡住了,WTF!?

3) mysqld.sock 需要驻留在何处以及我需要应用哪些文件设置才能使其与 php5 和 apache2 配合使用?
它是在/tmp 还是在/opt/local/var/run/mysql5/?
我需要配置/opt/local/etc/php5/php.ini 吗?选择/本地/var/db/php5/mysql.ini?/opt/local/etc/mysql5/my.cnf?

4) 我已经运行 > sudo -u mysql mysql_install_db5。如果我再次运行它会搞砸我吗?
我运行 mysqladmin -u root password 'mypw' 并收到错误消息,说 mysql 无法通过套接字连接。那么这是否意味着我的密码现在已设置?有办法告诉我吗?

5) 密码语句的语法因博客而异。我的密码是“mypw”还是“mypw”(不带引号)? (我的密码实际上不是 mypw)

6) 启动和停止 mysql 的适当命令是什么?我不希望它在我的机器启动时启动。

谢谢 Jergason,这非常有帮助。

我真的很想与 mysql 的 macports 安装保持一致,因为它限制了我可以对我的机器造成的损坏。

所以现在悬而未决的问题是......

1) macports mysql 安装的默认套接字位置是什么?

2)启动和停止mysql的适当命令是什么?我不希望它在我的机器启动时启动。一些博客说使用 launchctl -load 其他人说 sudo/path/mysql_safe5。如果您没有设置密码(因为我不打算设置),您是否需要使用 -user -p 参数?

3) 使 macports mysql 工作所需的目录所有权和权限是什么。 macports 似乎没有设置任何这些。

Nerd

Check /tmp for the MacPorts mysql socket



没有帮助。如前所述,我知道/tmp 是套接字的默认位置。我的问题是,当我尝试启动 mysql 时,套接字没有在那里实现,也没有出现在/opt/local/var/run/mysql5/中。这告诉我我在启动 mysql 时遇到问题,这意味着设置有问题。可能是什么,我不知道。恐怕我不是天生就对这些事情有先验知识。

- 在 Snow Leopard 下使用 macports 安装 mysql5 时,套接字应该位于哪个特定目录中?

If you're using 5 different sites' tips on how to run mysql and you're surprised you've gotten lost … well, I'll just leave it at try to follow just one site at a time and back out all changes before going to the next.



没有帮助。我完全按照你的建议开始了。你认为我做了什么,混合和匹配 5 个博客的说明?这就是我询问干净卸载的原因。我想知道以前安装的状态更改是否会影响 future 的“干净”安装。

- What SPECIFIC blog 描述了在雪豹下使用 macports 确认正确安装 mysql5 的过程。

I think the only problem you're having with MacPorts mysql (what problem are you having??) is that it's got a socket where you don't expect it and it's using a default configuration.



没有帮助。我也是,看我原帖。我认为问题在于 mysql 如何启动(或未启动)。

- 您对如何解决问题有任何具体建议吗?

This should have been explained after the install was completed by MacPorts.



没有帮助。不是,或者我没看到,如果是的话。也许是因为我使用的是 Porticus。

-你可以再详细一点吗?在什么时候我应该看到什么消息?

Please see ${prefix}/share/doc/mysql5/ for ideas and/or contact the developer list. Also consider contacting the maintainer of the port; they likely know the most about it since they manage it.



没有帮助。 RTM,谷歌是你的 friend ,等等。是的,先去了那里。尽管我承认我可能忽略了一些东西,因为当我确定我的问题很简单时,当我有其他工作要做时,我不倾向于花几天时间阅读一些写得不好的文档。
  • 如果你想给我一份我可能忽略的特定文件,那会很有帮助。

  • 我希望得到一些简单、集中的帮助,就像 Jergason 提供的那样。我(和其他阅读本文的人)感谢 Jergason 愿意传达他的知识,以加快人们对各种技术的学习过程。对他来说,这些知识是基本的,但对于新人来说,这可以节省大量时间。智能的真正标志是理解技术知识不是先验的,即使是基本的帮助也有很大帮助。再次感谢J-man。

    最佳答案

    我自己刚刚安装了 mysql5,因为这总是很痛苦,所以我注意到了我遵循的过程。这是在 Leopard 上完成的,但我想这个过程在 Snow Leopard 和 Lion 上是一样的。它没有回答所有原始问题,但至少它是一个指南。

    安装Mysql

    首先,安装mysql5服务器:

    sudo port install mysql5-server
    

    刚安装mysql5不安装服务器。

    注意控制台输出,它包括设置 macports 的说明。您可能希望将其复制并粘贴到文本文件中。以下内容以此为基础。

    而不是 mysql5-server ,您可以使用诸如 mysql55-server 之类的端口, mysql56-server , mariadb-serverpercona-server获取更新版本的 mysql 或 fork。如果这样做,请注意控制台输出,因为以下说明基于 mysql5-server并且需要进行调整以使用正确的可执行文件和路径。

    如果这是新安装,请设置数据库:
    sudo -u _mysql mysql_install_db5
    

    这会输出一些通用指令,我认为这些指令并不完全适合 macports。在我看来,将 mysql5 作为守护程序加载的最佳方法是使用 macport 的方法:
    sudo port load mysql5-server
    

    除了启动 mysql5,这会永久加载它 - 它会在启动时运行。稍后停止此操作:
    sudo port unload mysql5-server
    

    如果您不想将其作为守护程序运行,则可以在命令行中运行它:
    sudo /opt/local/lib/mysql5/bin/mysqld_safe
    

    通过在命令行登录来检查它是否正在运行:
    mysql5 -u root -p
    

    默认情况下,密码为空,因此只需在出现提示时按 Enter。要设置 root 密码:
    /opt/local/lib/mysql5/bin/mysqladmin -u root password 'correct horse battery staple'
    

    设置 macports php 和 native php 安装的说明如下。

    设置 Macports PHP

    假设您已经安装并运行了 macports php。您需要安装 php5-mysql (或类似 php54-mysql 的内容,取决于您使用的 php 版本):
    sudo port install php5-mysql
    

    这将安装 mysql、mysqli 和 pdo 驱动程序。

    现在看看你的 /opt/local/etc/php5目录,如果您还没有 php.ini配置文件复制任一 php.ini-developmentphp.ini-productionphp.ini .现在编辑 php.ini并搜索要添加的适当行:
    pdo_mysql.default_socket=/opt/local/var/run/mysql5/mysqld.sock
    

    和:
    mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    和:
    mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    如果您不想配置这些,您可以在连接时在 php 脚本中显式设置它们。

    如果您在连接时遇到问题,您可能需要查看附近的其他设置,并与 php.ini-development 进行比较。和 php.ini-production看看有什么变化。

    然后使用下面的脚本,或者类似的东西来测试你可以用php连接。

    设置系统 PHP

    OS X 的 php 内置了 mysql 和 mysqli 支持(但不是 pdo),所以你需要做的就是设置 macport unix 套接字。默认位置是 /opt/local/var/run/mysql5/mysqld.sock .在 /etc/php.ini 中找到正确的位置(如果您还没有,请从 /etc/php.ini.default 复制它)添加:
    mysql.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    和:
    mysqli.default_socket = /opt/local/var/run/mysql5/mysqld.sock
    

    如果您不想配置这些,您可以在连接时在 php 脚本中显式设置它们。

    测试脚本

    这是一个用于检查它是否可以连接的 php 脚本。显然,您通常不会在 php 脚本中使用 root 帐户,因此您可能需要先创建另一个 mysql 帐户来测试连接。 PDO 连接不适用于 native php,因为它没有 PDO 驱动程序。
    <?php
    
    $username = 'root';
    $password = 'correct horse battery staple';
    
    /* Try mysql: */
    
    $connection = mysql_connect('localhost', $username, $password);
    if ($connection === FALSE) {
        echo "Error connecting using mysql.\n\n";
        echo "Error ".mysql_errno().": ".mysql_error()."\n\n";
    
    }
    else {
        echo "Connected using mysql.\n\n";
        mysql_close($connection);
    }
    
    /* Try mysqli: */
    
    $connection = mysqli_connect('localhost', $username, $password);
    if ($connection->connect_error) {
        echo "Error connecting using mysqli:\n\n";
        echo "Error ".$connection->connect_errno.": ".$connection->connect_error."\n\n";
    }
    else {
        echo "Connected using mysqli.\n\n";
        $connection->close();
    }
    
    /* Try pdo:
     * Won't work for the version of php supplied with OS X. */
    
    try {
        $pdo = new PDO('mysql:host=localhost', $username, $password);
        echo "Connected using PDO.\n\n";
        $pdo = null;
    }
    catch(PDOException $e) {
        echo "Error connecting using PDO:\n\n";
        echo "Error ".$e->getCode().": ".$e->getMessage()."\n\n";
    }
    

    关于mysql - Snow Leopard下的Macports mysql5设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1591978/

    相关文章:

    apache - 如何在运行 Apache2 的单个虚拟主机上托管多个 MVC3 站点?

    macports - Macport self 更新失败

    MySQL:检查子集中的所有值是否在另一个表中并输出相应的ID

    php - 如何在 mac osx 雪豹中安装 php5 curl?

    php - 从查询返回用户对象数组

    macos - 如何使用 Cocoa 或其他任何工具在 Mac OS X 10.6 上同时使用 USB 扬声器和内置音频扬声器?

    macports - 安装前编辑端口源

    jpeg - 为 mac (macports) 安装 libjpeg 时出现问题

    MySQL 根据字段状态为每个字段输出多列

    mysql - 无法通过 sequelize 连接到 MySQL