问题标签 [mariadb-10.4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
705 浏览

mysql - 通过 yum 从 MariaDB 5.5 升级到 MariaDB 10 失败

我想将 mariadb 从 5.5... 升级到 10。但是当我运行“yum update -y”时,屏幕显示如下:

我该如何解决这个问题?

0 投票
1 回答
114 浏览

sql - 在 MariaDB 中为“DELETE”指定了两次表

我创建了一个查询来删除 MariaDB 中的一些记录

询问 :

结果 :

表“HrAttLogsFormatted”被指定了两次,既作为“DELETE”的目标,又作为数据的单独源

但是我的查询失败了,有没有办法解决呢?

先感谢您

[EDIT-SOLVED] 只需应用和查询即可解决

0 投票
0 回答
48 浏览

mysql - 根据子查询的结果返回一个额外的列

我有两张桌子,一张有deals,一张有companies

在与公司的表中,我有 lat's 和 lng's。通过子查询,我可以获得交易、公司以及交易与特定位置之间的距离。但我想要一个包含最接近该位置的 3 个交易 ID 的列。

10.4.6-MariaDB

我用:

这给出了:

我想:

0 投票
1 回答
114 浏览

laravel - Laravel 和 CTE 的

我正在尝试使用 taudenmeirs 的 laravel-cte 包将以下 SQL 查询转换为 Laravel 代码。

问题是我不断从服务器收到以下响应:

Illuminate\Database\QueryException: SQLSTATE[42000]: 语法错误或访问冲突:1140 没有 GROUP 列的 GROUP 列 (MIN(),MAX(),COUNT(),...) 的混合是非法的 如果没有 GROUP BY 子句 (SQL: with cte as (select , ROW_NUMBER() OVER (PARTITION BY channel_id ORDER BY created_at DESC) AS row_number from Videos) select Channels. from Channels left join cte on Channels.id = cte.channel_id where cte.rn = 1) 在第 665 行的文件 /Users/mark/Workspace/api.site/vendor/laravel/framework/src/Illuminate/Database/Connection.php

0 投票
1 回答
38 浏览

mysql - 为什么我的 MariaDB 导入只导入了部分数据行?

我有一个 12 GB 的 .sql 文件,我通过 .sql 从我们的生产服务器获取mysqldump。我们的生产服务器和我都使用 MariaDB 10.4(我最近从 MariaDB 5.5 升级)。

我的同事(使用 MariaDB 10.1)能够很好地导入 .sql 文件。当我尝试导入时,它似乎可以工作,但是在许多表上(可能只有较大的表?)它只导入了总行数的一小部分。例如,在一个 150 万行的表上,我的数据库在导入“完成”后只有 2,000 行。

mysql -u [user] -p [db_name] < /path/to/datadump.sql用来导入数据。

/var/log/mysqld.log错误日志 ( )中没有错误。

环境是在 MacOS 上的 Vagrant box 上运行的 CentOS 6.10。

0 投票
0 回答
252 浏览

ubuntu-18.04 - 如何在 ubuntu 18.04 中长时间运行 Maria DB

我写了 systemctl start mariadb 它显示:

mariadb.service 的作业因超时而失败。有关详细信息,请参阅“systemctl status mariadb.service”和“journalctl -xe”。

几分钟后,/var/run/mysqld/mysqld.sock 存在,我可以在 phpmyadmin 中看到我的数据库,但是当我运行 systemctl status mariadb.service 时,/var/run/mysqld/ 再次变为空,它显示:

● mariadb.service - MariaDB 10.4.10 数据库服务器已加载:已加载(/lib/systemd/system/mariadb.service;已启用;供应商预设:已启用) Drop-In:/etc/systemd/system/mariadb.service.d └ ─migrated-from-my.cnf-settings.conf 活动:自 2019 年 11 月 24 日星期日 IST 12:41:59 以来失败(结果:超时);13 秒前 文档:man:mysqld(8) https://mariadb.com/kb/en/library/systemd/ 进程:3555 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (code=exited, status= 0/SUCCESS) 进程:3414 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=/usr/bin/galera_recovery; [ 美元?-eq 0 ] && 系统进程:3412 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) 进程:3411 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Main PID: 3555 (code=exited, status=0/SUCCESS)

Nov 24 12:41:57 administrator-Vostro-3480 mysqld[3555]: 2019-11-24 12:41:57 0 [注意] 事件调度程序:清除队列。0 事件 Nov 24 12:41:57 administrator-Vostro-3480 mysqld[3555]: 2019-11-24 12:41:57 0 [注意] InnoDB:FTS 优化线程退出。11 月 24 日 12:41:57 管理员-Vostro-3480 mysqld [3555]: 2019-11-24 12:41:57 0 [注意] InnoDB: 开始关闭... 11 月 24 日 12:41:57 管理员-Vostro-3480 mysqld [3555]:2019-11-24 12:41:57 0 [注意] InnoDB:将缓冲池转储到 /var/lib/mysql/ib_buffe 11 月 24 日 12:41:57 管理员-Vostro-3480 mysqld [ 3555]:2019-11-24 12:41:57 0 [注意] InnoDB:缓冲池转储于 191124 12:41:57 Nov 24 12:41:59 完成,管理员-Vostro-3480 mysqld [3555]: 2019-11-24 12:41:59 0 [注意] InnoDB:关闭完成;日志序列号 139944;t 11 月 24 日 12:41:59 管理员-Vostro-3480 mysqld [3555]:2019-11-24 12:41:59 0 [注意] InnoDB:删除临时表空间数据文件:“ibtmp1”11 月 24 日 12:41:59 管理员-Vostro-3480 mysqld [3555]:2019-11-24 12:41 :59 0 [注意] /usr/sbin/mysqld:关闭完成 11 月 24 日 12:41:59 管理员-Vostro-3480 systemd [1]:mariadb.service:失败,结果为“超时”。11 月 24 日 12:41:59 管理员-Vostro-3480 systemd[1]:无法启动 MariaDB 10.4.10 数据库服务器。第 1-23/23 行(完)10 数据库服务器。第 1-23/23 行(完)10 数据库服务器。第 1-23/23 行(完)

如何增加时限??

0 投票
1 回答
67 浏览

sql - SQL - 请求五个表

我在 mariadb 数据库中有五个表,我想选择每个名称表的最后一个值,

在此处输入图像描述

我执行此 sql 命令以获得主机、名称和严重性,

我试过这个 sql 命令:

我想要最后一个主机、名称和严重性,我想要这个结果在 sql 中:

在此处输入图像描述

0 投票
0 回答
438 浏览

mysql - MariaDB 不会以 CIFS 共享作为 datadir 开始

当使用 CIFS 共享作为其数据目录时,Ubuntu Server 18.04 上的 MariaDB 有一个相当特殊的问题。

设置是托管在 192.168.4.10 的文件服务器和托管在 192.168.4.8 的 MariaDB 数据库服务器。我现在想将数据库服务器的“热数据”存储在我的文件服务器上。为此,我在我的文件服务器上创建了一个 SMB/CIFS 共享,数据库服务器应该使用它来在文件服务器上存储其数据(默认/var/lib/mysql位于此设置对生产数据库有意义)。

我使用 AutoFS 挂载 CIFS 共享。配置看起来像这样

/etc/auto.master

/etc/auto.db-slave

我还创建了一个(软)符号链接/var/lib/mysql -> /var/autofs/net/db-slave

共享工作得很好,我可以cd到文件夹,当我切换到 mysql 用户时,sudo -su mysql我还可以编辑/创建/删除文件和目录,并且更改正确反映在我的文件服务器上。

但是,当我尝试再次启动 MariaDB 服务时,sudo systemctl start mariadb它无法启动并且日志文件如下所示:

如您所见,问题似乎是 InnoDB 引擎无法读取./ibdata1。但是该文件很好,因为当我禁用共享并将所有文件从我的文件服务器复制回/var/lib/mysqlMariaDB 服务时,它启动得很好。

如您所见,我尝试了在 AutoFS 配置中可以找到的所有访问掩码参数(这就是为什么存在所有这些模式、uid、gid 等参数的原因),但到目前为止无济于事。

EDIT3:我按照@danblack 的建议做了,并strace -fe trace=%desc -o /tmp/mysqld.strace /usr/sbin/mysqld以 mysql 用户身份运行。你可以在WeTransfer上找到完整的文件,希望有人能够理解这一切。

跟踪的关键部分是:

0 投票
2 回答
204 浏览

python - Django 模型不保存到 MySQL (Maria DB) 而其他人保存

我的应用程序 (Django v 2.2.5) 正在使用 MySQL (MariaDB 10.4.6) 将数据存储在其数据库中,并完成并提交了所有迁移。它创建了超级用户,当我登录时,我可以创建所有相关的对象,但是Product(可以说是最重要的)没有被创建。我已经尝试更改模型,甚至删除BooleanField(唯一与正在存储的模型不同的唯一字段)并应用迁移,但它仍然不起作用。我什至删除了整个数据库并重新开始,希望绕过任何棘手的迁移,但这对我仍然没有任何帮助。这是我的models.py

我正在使用的任何字段或元数据参数是否不受支持?我对自己做错了什么感到迷茫。我试着查看日志,但看不到任何明显的东西可以为我指明正确的方向(我承认我不太擅长数据库)。这是错误日志:

软件版本:

  • Python 3.6.4(v3.6.4:d48eceb,2017 年 12 月 19 日,06:54:40)[MSC v.1900 64 位 (AMD64)]
  • Django v 2.2.5
  • MariaDB 10.4.6
  • mysql客户端 1.4.4

我将非常感谢您能给我的任何帮助。

0 投票
5 回答
1745 浏览

sql - SQL:选择包含单词的行

目标是选择包含某个特定单词的所有行,可以在字符串的开头或结尾和/或被空格包围,可以这么说,不应该在其他单词内。

这是我的数据库中的几行:

所以在这个例子中,选择 wordtest应该返回第 1、2 和 5 行。

问题是由于某种原因,SELECT * FROM ... WHERE ... RLIKE '(\s|^)test(\s|$)';返回 0 行。

我在哪里错了,也许,如何才能做得更好?

编辑: Query 还应该选择只有一个 word 的行test

我的第一个问题的答案是:
我没有转义特殊字符,所以\s应该是\\s.
工作查询:SELECT * FROM ... WHERE ... RLIKE '(\\s|^)test(\\s|$)';。(或者只是一个空格( |^)/ ( |$),也可以)