问题标签 [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.
mysql - 通过 yum 从 MariaDB 5.5 升级到 MariaDB 10 失败
我想将 mariadb 从 5.5... 升级到 10。但是当我运行“yum update -y”时,屏幕显示如下:
我该如何解决这个问题?
sql - 在 MariaDB 中为“DELETE”指定了两次表
我创建了一个查询来删除 MariaDB 中的一些记录
询问 :
结果 :
表“HrAttLogsFormatted”被指定了两次,既作为“DELETE”的目标,又作为数据的单独源
但是我的查询失败了,有没有办法解决呢?
先感谢您
[EDIT-SOLVED] 只需应用和查询即可解决
mysql - 根据子查询的结果返回一个额外的列
我有两张桌子,一张有deals
,一张有companies
。
在与公司的表中,我有 lat's 和 lng's。通过子查询,我可以获得交易、公司以及交易与特定位置之间的距离。但我想要一个包含最接近该位置的 3 个交易 ID 的列。
10.4.6-MariaDB
我用:
这给出了:
我想:
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
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。
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 行(完)
如何增加时限??
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/mysql
MariaDB 服务时,它启动得很好。
如您所见,我尝试了在 AutoFS 配置中可以找到的所有访问掩码参数(这就是为什么存在所有这些模式、uid、gid 等参数的原因),但到目前为止无济于事。
EDIT3:我按照@danblack 的建议做了,并strace -fe trace=%desc -o /tmp/mysqld.strace /usr/sbin/mysqld
以 mysql 用户身份运行。你可以在WeTransfer上找到完整的文件,希望有人能够理解这一切。
跟踪的关键部分是:
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
我将非常感谢您能给我的任何帮助。
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|$)';
。(或者只是一个空格( |^)
/ ( |$)
,也可以)