【问题标题】:Why won't mariadb listen on port 3306 after a macports update?为什么 macports 更新后 mariadb 不监听端口 3306?
【发布时间】:2016-10-12 18:10:05
【问题描述】:

在 mariadb 端口更新后的某个时间点,她拒绝在启动时监听 3306。

我确保没有跳过网络指令,甚至尝试使用“=OFF”添加一个,但什么也没做...但奇怪的是它一直在工作,并且“我没有改变任何东西”。

但当我跑步时:

/opt/local/lib/mariadb/bin/mysqladmin variables -u root -p | grep skip_networking

我认为跳过网络已开启。

我的配置是这样的:

[mysqld]
port            = 3306  
bind-address    = 127.0.0.1

根本没有跳过网络设置。

即使通过命令行传递端口和绑定地址也不会让它监听。

【问题讨论】:

    标签: macports mariadb


    【解决方案1】:

    在 /opt/local/etc 的 grep 之后,原来有一个默认配置,里面有一个 skip-networking 指令:

    cat /opt/local/etc/mariadb/macports-default.cnf

    这只是因为在读取 /etc/my.cnf 之后,显然 /opt/local/etc/mariadb/my.cnf 文件也被读取了。 (我用过 /etc/my.cnf,从来没有编辑过另一个,但有些东西改变了——也许我编辑了默认值,它被更新覆盖了,虽然我不记得这样做了。)

    注释掉macports-default.cnf 的/opt/local/etc/mariadb/my.cnf 中的include 再次让她倾听。

    回想起来,我想是相当明确的解决方案,但我有点难过,因为我发誓“我什么都没改变!”...不管怎样——为了后代和关键词搜索!

    【讨论】:

      【解决方案2】:

      我还不能评论,但想补充:

      如果您通过 MacPorts 安装了其他版本的 MySQL 或 mariaDB,请务必检查它们的配置文件,因为 MariaDB 会读取它们。

      地点:

      /opt/local/etc/mysql${mysqlVersion}/my.cnf

      /opt/local/etc/mariadb-${mariadbVersion}/my.cnf

      我已经安装了 mariadb-10.1-server。 有两个配置:

      /opt/local/etc/mariadb/my.cnf

      /opt/local/etc/mariadb-${mariadbVersion}/my.cnf

      此外,关于来自 MirandaDB documentation 的默认配置文件的一些信息(这不是特定于 Macports):

      1. /etc/my.cnf
      2. /etc/mysql/my.cnf
      3. my.cnf在编译时指定的DEFAULT_SYSCONFDIR
      4. 路径中的my.cnf,在环境变量中指定MYSQL_HOME(如果有)在--defaults-extra-file(如果有)中指定的文件
      5. user-home-dir/.my.cnf

      【讨论】:

        【解决方案3】:

        除了注释掉默认文件之外,还可以在my.cnf 中覆盖该值:

        [mysqld]
        ...
        skip_networking=0
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-09-29
          • 2012-08-20
          • 2018-09-28
          • 1970-01-01
          • 2019-05-26
          • 1970-01-01
          • 2019-10-24
          相关资源
          最近更新 更多