【问题标题】:How can set SQL_MODE permanently on my mac如何在我的 Mac 上永久设置 SQL_MODE
【发布时间】:2018-08-21 18:44:42
【问题描述】:

我正在我的 OsX 10.11 El Capitan 上安装 MySql。如果我尝试开始我的查询,如果我的查询有分组依据,我会遇到一个奇怪的错误。

所以如果我尝试从终端执行这个查询:

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

我可以执行我的查询从来没有问题。现在,如果我尝试重新启动我的 macbook,我会遇到一些问题,我可以重新执行查询。

有什么方法可以永久修复这个 sql_mode 吗?

我必须打开“etc/mysql/my.cnf”文件,但我的 mac 上没有这个文件。如何应用此更改?

【问题讨论】:

    标签: mysql macos operating-system sql-mode


    【解决方案1】:

    您可以设置 my.cnf 并添加您的 sql_mode 配置

      [mysqld]
      sql_mode=ONLY_FULL_GROUP_BY
    

    默认情况下,OS X 安装不使用 my.cnf,MySQL 只使用默认值。 要设置你自己的 my.cnf,你可以直接在 /etc 中创建一个文件。

    【讨论】:

    • 如何创建这个文件?
    • 在 /ect 中创建 my.cnf .. /etc/my.cnf
    • 我在 TextWrangler 程序上打开了一个新文件,但如果我尝试将其保存在 etc 上,则会出现错误
    • 我打开了 Finder APP,Go-> Go To: etc/ 然后我创建了一个 mysql 文件夹,然后我使用以下代码创建了 my.cnf 文件:[mysqld] sql_mode "" 但我'我无法解决我的问题
    • 好的,我已经在 /etc 文件夹下创建了一个 my.cnf 文件。我重新启动我的电脑,但问题是一样的
    【解决方案2】:

    如果您使用的是 MAMP PRO,请注意指南中的这一点:

    您不能直接编辑您的 my.cnf 文件。您必须使用 MAMP PRO 界面来编辑您的 my.cnf 文件。在菜单中转到文件 > 编辑模板 > MySQL > my.cnf。

    然后你可以在[mysqld]标题下添加你想要的sql_mode。例如:

    [mysqld]
    sql_mode=ONLY_FULL_GROUP_BY
    

    这对我有用。

    【讨论】:

      【解决方案3】:

      如果要关闭 ONLY_FULL_GROUP_BY,需要先检查 sql_mode 变量的值:

      (默认值)

       mysql> show variables like 'sql_mode'\G
       *************************** 1. row ***************************
       Variable_name: sql_mode
          Value: ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
      
      1 row in set (0,01 sec)
      

      编辑 MySQL 配置文件 my.conf 。通常在 /etc/my.cnf 中就像 scaisEdge 所说的那样。 但是,你必须写:

      [mysqld]
      sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
      

      (所有没有 ONLY_FULL_GROUP_BY 的值 - 您可以复制/粘贴此行)

      重新启动您的 MySQL,然后享受吧。

      【讨论】:

        【解决方案4】:

        按照以下步骤操作的正确方法

        1. 退出 MAMP。

        2. 在终端中运行以下命令:

          touch /Applications/MAMP/conf/my.cnf && open -t /Applications/MAMP/conf/my.cnf

        3. 当此文件为空时,然后在下面添加以下内容。如果文件不为空,则只需在 [mysqld] 行之后添加 sql_mode="" 行

          [mysqld] sql_mode=""

        4. 保存配置文件并关闭文本编辑器;重新启动 MAMP 并启动服务器。

        参考:https://mampsupportforum.com/forums/latest/mamp-mamp-pro-disable-mysql-strict-mode

        【讨论】:

          猜你喜欢
          • 2013-12-20
          • 2013-01-20
          • 1970-01-01
          • 2019-01-05
          • 2015-11-28
          • 2016-03-10
          • 1970-01-01
          • 2020-12-16
          • 2015-07-15
          相关资源
          最近更新 更多