MariaDB 涉及服务器版本的语法错误
Posted
技术标签:
【中文标题】MariaDB 涉及服务器版本的语法错误【英文标题】:Syntax error with MariaDB Involving Server Version 【发布时间】:2019-10-13 07:29:44 【问题描述】:我已经运行 LiveSite 网站快一年了,没有任何问题,但在过去 1-2 周内出现此错误:
错误:查询失败。
您的 SQL 语法有错误;查看与您的 MariaDB 服务器版本相对应的手册,了解在第 14 行的“行、列、信息”附近使用的正确语法
我已提交支持票,但他们提供了帮助。
我在 phpMyAdmin 中的数据库设置中查看了我的 cPanel 设置,但真的不知道在哪里查看。
我正在使用(即我使用的网络托管公司):
数据库服务器
服务器:通过 UNIX 套接字的本地主机
服务器类型:MariaDB
服务器连接:未使用 SSL 
服务器版本:10.3.14-MariaDB-cll-lve - MariaDB 服务器
协议版本:10
用户:edmbeats@localhost
服务器字符集:UTF-8 Unicode (utf8)
网络服务器
cpsrvd 11.78.0.24
数据库客户端版本:libmysql - 5.1.73
PHP 扩展:mysqli、curl、mbstring
PHP版本:7.2.7
phpMyAdmin
版本信息:4.8.3没什么,需要知道去哪里解决这个问题。我已经 8 个月没有在网站上更改任何内容,没有更新,也没有更改设置。我不确定托管公司是否更新了他们的数据库程序,并导致了这种情况。有一个更新版本的 LiveSite 2019 版本比我使用的 2017 版本更新,但 LiveSite 不支持在托管平台内自动更新 2017 版本。
不适用
【问题讨论】:
10.3.14 的发布日期是 2019-04-02。所以在过去的 8 个月里肯定有更新。检查 MariaDB 是否引入了新的(保留的)关键字,例如ROWS
。
请考虑使用代码块或其他格式化工具使您的问题更易于阅读。
【参考方案1】:
https://mariadb.com/kb/en/library/reserved-words/ 表示关键字 ROWS
在 MariaDB 10.2.4 中作为保留字添加。
您可以在 SQL 语句中使用保留字,方法是用反引号分隔它们:
... `rows`, cols, informatio...
因此,您必须编辑运行该查询的应用程序代码,这意味着您必须准确找出导致错误的查询。
最好避免在表和列标识符中使用保留字。如果 LiveSite 代码使用保留字,则应告知他们需要更正此问题,否则在与保留字冲突的表和列标识符周围加上反引号。我建议您联系他们提出支持请求。
【讨论】:
是否有一种简单的方法可以确定我需要向哪个文件添加反引号?我查看了 config、init、settings、welcome、class、css 文件,但找不到有问题的语句.... SQL 语句来自您的代码文件,而不是 html 或 CSS 文件。但是,如果您使用一些为您生成 SQL 的框架,SQL 也可能不会按字面意思出现在您的代码文件中。我对 LiveSite 一无所知。您可能需要联系 LiveSite 支持。以上是关于MariaDB 涉及服务器版本的语法错误的主要内容,如果未能解决你的问题,请参考以下文章
错误 MariaDB 服务器版本的原因是啥,以便在附近使用正确的语法
您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以获取在 '0 附近使用的正确语法
#1064 - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法
SQL 语法错误; “检查与您的 MariaDB 服务器版本相对应的手册,以了解在 'Order INT NOT NULL' 附近使用的正确语法 [重复]
MySQL - 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册以获取正确的语法 - phpMyAdmin