我花了数小时试图弄清楚这一点,但被严重卡住了。我今天安装了最新版本的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或重新启动计算机,则由于更改不是永久性的,因此必须再次执行。
答案 0 :(得分:5)
打开MAMP Pro并检查您的设置(⌘ + ,)。确保未选中 Hide Dock Icon
。如果需要,请取消选中该图标,退出MAMP并重新启动它。
注意:这是查看MAMP菜单项所必需的。您可以稍后再隐藏Dock图标。
打开MAMP Pro的主窗口,然后通过菜单转到 File > Edit Templates > MySQL > (your version)
。
这会打开一个带有您的MySQL配置的文本编辑器。
在配置文件中查找行[mysqld]
(请注意末尾的d
!)。
在此行之后,添加带有以下文本的新行:sql_mode=""
保存文件,将其关闭并重新启动MySQL服务器。
默认情况下,MAMP free在没有my.cnf
文件的情况下免费启动MySQL服务器,即,它使用MySQL构建随附的默认配置。因此,您必须手动创建配置文件:
在终端中运行命令-它会在您的文本编辑器应用中打开配置文件:
touch /Applications/MAMP/conf/my.cnf && open -t /Applications/MAMP/conf/my.cnf
当文件为空时,然后添加以下内容:
[mysqld]
sql_mode=""
(当文件不为空时,只需在行sql_mode=""
之后添加行[mysqld]
)
保存配置文件并关闭文本编辑器; 重新启动MAMP 并启动服务器。
答案 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”
对我有用