如何在Mac上使用MAMP禁用mysql中的严格模式

时间:2018-08-23 13:31:02

标签: mysql phpmyadmin

我花了数小时试图弄清楚这一点,但被严重卡住了。我今天安装了最新版本的mysql,我的网站上的某些东西坏了。我认为这与严格的设置有关,例如IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

我正试图禁用严格模式,只是为了使我的网站正常工作,但这似乎是不可能的。我已经在终端尝试过了,但是没有运气。

sudo vim /etc/mysql/conf.d/disable_mysql_strict_mode.cnf


[mysqld] 
    sql_mode="IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 

我已经查看了我可以找到的每个etc文件夹以及其他各种文件夹,但看不到任何类似于.cnf文件的东西。

我可以通过phpmyadmin临时执行此操作,但是如果我关闭MAMP或重新启动计算机,则由于更改不是永久性的,因此必须再次执行。

5 个答案:

答案 0 :(得分:5)

MAMP Pro

  1. 打开MAMP Pro并检查您的设置( + )。确保未选中 Hide Dock Icon 。如果需要,请取消选中该图标,退出MAMP并重新启动它。
    注意:这是查看MAMP菜单项所必需的。您可以稍后再隐藏Dock图标。

  2. 打开MAMP Pro的主窗口,然后通过菜单转到 File > Edit Templates > MySQL > (your version)
    这会打开一个带有您的MySQL配置的文本编辑器。

  3. 在配置文件中查找行[mysqld] (请注意末尾的d!)。
    在此行之后,添加带有以下文本的新行:sql_mode=""

  4. 保存文件,将其关闭并重新启动MySQL服务器。

MAMP Pro configuration


MAMP(免费)

默认情况下,MAMP free在没有my.cnf文件的情况下免费启动MySQL服务器,即,它使用MySQL构建随附的默认配置。因此,您必须手动创建配置文件:

  1. 退出MAMP (停止服务器)
  2. 在终端中运行命令-它会在您的文本编辑器应用中打开配置文件:
    touch /Applications/MAMP/conf/my.cnf && open -t /Applications/MAMP/conf/my.cnf

  3. 当文件为空时,然后添加以下内容

    [mysqld]
    sql_mode=""
    

    (当文件不为空时,只需在行sql_mode=""之后添加行[mysqld]

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

MAMP free configuration

答案 1 :(得分:1)

如果您正在运行MySQL 8.x,请尝试以下操作:

SET PERSIST SQL_MODE = "IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION";

答案 2 :(得分:1)

尝试查找和编辑正确的my.cnf文件可能是错误的策略。对我而言,MAMP PRO指南中的关键信息是:

  

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

答案 3 :(得分:0)

只是将其更新为MAMP 5的免费版本,我发现如果权限设置不正确,MAMP将忽略/ Applications / MAMP / conf /目录中放置的my.cnf文件。我运行了此命令以找出答案... /Applications/MAMP/Library/bin/mysql --verbose --help | grep -A 1 "Default options"

这是告诉我的。

mysql:[警告]世界可写的配置文件'/Applications/MAMP/conf/my.cnf'被忽略。 从以下文件中以给定顺序读取默认选项: /etc/my.cnf /etc/mysql/my.cnf /Applications/MAMP/conf/my.cnf〜/ .my.cnf

做  chmod 755 my.cnf

设置正确。

答案 4 :(得分:0)

免费展示

转到PhpMyAdmin>变量选项卡 找到 sql模式行,然后点击 edit 按钮 将值替换为此“ STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”

对我有用