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

SQL语法错误。请我检查MariaDB服务器的手册