问题标签 [mariadb-10.5]
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.
ubuntu - 错误未知/不支持的存储引擎:InnoDB
启动 mariadb 服务时出现一些错误。我尝试了一些命令,例如 1。
但返回相同的错误。我该如何解决这个错误?
mariadb - MariaDB root 登录问题。(可以登录但不安全)
我有一些问题。
安装 MariaDB 成功。
mysql_secure_installation
设置完成。
但我登录mysql -u root -p
插入任何密码都可以登录linux root用户。
(不是root用户必须输入正确的密码)
这个问题不会出现在MariaDB v10.3
但MariaDB v10.4
过版本。
我认为这种情况是不安全的。
我能找到一些解决方案吗?
mariadb - Meaning of percentage in rows section in explain output of mariadb 10.5
I recently moved to mariadb 10.5, and have encountered this specific output where a percentage is shown along with rows in explain output. I couldn't find any documentation for the same, probably it's a new feature.
What exactly does that mean? Is it the probability of some kind regarding rows being read?
mysql - 使用用户定义的变量动态命名第二个数据库以将表与第二个数据库连接起来
我需要JOIN
两个不同的数据库,我已经静态地完成了这两个数据库,仅用于测试目的。
- 第一个数据库已经在连接本身中定义。
- 第二个数据库必须从第一个数据库中的信息动态派生,该信息必须首先在用户定义的变量中定义。为简单起见,我将简单地将第二个数据库名称称为
example2
. - 静态定义第二个数据库名称有效,并且所有
JOIN
ed 数据都已成功提取,但是如果我在实时(或“生产”)服务器上执行此操作,我将不得不在与某些 PHP 的同一连接上运行两个单独的查询这两个查询之间的代码。 - 如果不运行第二个查询,我无法定义第二个数据库名称,关键是当我知道有一种方法可以在单个查询中进行时避免与 SQL 服务器建立多个连接(如果我们不计算设置用户-定义变量一个查询)。
这是对我有用的静态演示:
但是以下方法不起作用:
如何设置和使用用户定义的变量来动态定义第二个数据库的名称并使用它来动态地JOIN
在两个数据库之间创建表?
- 所有数据均已正确存储/格式化/等。
- 我已经让用户定义的变量工作了,我需要帮助在数据库到数据库的 JOIN 上实现它。
- 这与 PHP 具有可变变量这一事实有关。
mysql - 更改 MariaDB 10.5.5 端口
我已经在 Ubuntu 20.04 服务器上安装了 MariaDB 10.5.5 。现在我尝试将数据库的默认端口更改为12345。当我查看/etc/mysql/my.cnf
并/etc/mysql/mariadb.conf.d/50-server.conf
没有端口选项时,我在里面添加,port = 5505
然后我使用&重新启动 mariadb-server 。但是当我使用 连接mariadb 服务器时,它只是连接了。预期的行为是 mysql 客户端将拒绝连接。我也尝试使用,但仍然连接。我的问题是如何更改端口并防止这种奇怪行为发生?/etc/mysql/mariadb.conf.d/50-server.conf
[mysqld]
sudo systemctl restart mysql
sudo systemctl restart mariadb
mysql -uusername -p
mysql -uusername -p -P123222
mysql - auto_increment jumps by 3 and not 1
I have noticed that in my mysql server, the auto_increment setting increments by 3, for example 3 6 9 12 15 etc.
All the tables in the database are having the same problem.
I'm using mariadb 10.5 on debian 10.
Could it be because of having a 3 vps galley cluster?
sql - SQL 错误 (1038): 排序内存不足,请考虑增加服务器排序缓冲区
我已将 MariaDB 10.3.13 升级到最新版本 10.5.6。部署后,我的一个查询开始出现此错误:
我设法简化了查询,同时在全新的 10.5.6 安装(默认设置)中保持错误。这在 10.3.13 上没有问题:
增加sort_buffer_size 会有所帮助。但是在原始查询中,我需要将此缓冲区从默认的 2MB 增加到大约 80MB(根本不涉及 ORDER BY;产品表过滤到大约 15k-20k 条目 - 根本不是那么大的数字)。根据https://www.xaprb.com/blog/2010/05/09/how-to-tune-mysqls-sort_buffer_size/我宁愿保留原始设置。我也不明白为什么带有默认 2MB 缓冲区的 10.3.13 运行良好,而新版本则不行。
我应该在 MariaDB 上提交错误吗?还是我做错了什么?或者我应该调查一周/两周以简化查询?迷失在这里。
在 Windows Server 2012R2 上测试;至强 E3-1225@3.2Ghz;16GB 内存
感谢帮助。
triggers - 带有 InnoDB 的 MariaDB 中的触发器会发生“数据竞争”吗?
我的应用程序处理大量实时数据(每天超过 2 亿),我需要实时汇总它们以保持报告性能。数据由服务器的多个线程提供并因此随机处理。
我MariaDB 10.5.6-MariaDB
用InnoDB 10.5.6
您知道触发器是否是线程安全的,即是否可能发生数据竞争。换句话说,当 1000 次更新 - 仅增量 - 在一秒钟内通过 10 个连接发生在单行中的相同列上时,数据不会被弄乱,结果将就像值是由单个串联连接相加的.
您是否知道行级锁定的工作原理以及它是自动的还是可以手动强制执行的。
分享您的一些相关书签也将不胜感激,因为我在 google 中没有找到任何简洁有用的东西。
更新
我添加了一个插入后触发器,如果记录不存在,它会在报告表中创建一条新记录,然后使用更新语句更新列update table set field=value+delta where condition
。数据库不喜欢它,并且正在发送数据的应用程序 - java,hibernate - 也无法承受它并开始抛出异常:
- 这与休眠尝试插入的行完全无关,因为它没有尝试更新。显然它来自 MariaDB 触发器:
Caused by: org.hibernate.StaleObjectStateException: Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)
- 我不确定为什么会发生这种情况,但也得到了一些:
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLTransactionRollbackException: Deadlock found when trying to get lock; try restarting transaction
plsql - MariaDB pl/sql '函数不存在'
我每次尝试在 pl/sql 块中进行选择或任何操作时都使用MariaDB 10.5.6-MariaDB
with ,然后它会显示“函数不存在”。InnoDB 10.5.6
我究竟做错了什么?在使用 pl/sql 之前是否需要获取库?这是没有意义的。
这有效(在开始/结束之外),我得到了结果:94
这不起作用
错误:
这都不起作用:
错误:
这也不起作用
错误:
从 CLI 客户端
mysql - MariaDB / Galera - 挂起的节点冻结了整个三节点集群
我希望你们都健康。:-)
目前我有一个反复出现的问题。我们的数据库集群由三个节点组成,目前几乎每天都出现故障。重复的原因是三个节点之一挂起,因此以某种方式挂起整个集群。但是......我们有集群来保护我们免受失败。:-(
该问题表现为每次连接尝试都超时。我通过 ssh 连接到每个节点并执行命令“mariadb”或“mysql”。到目前为止,该命令总是在 3 个节点中的 2 个上工作,一个节点(挂起的节点)没有响应。如果我现在通过“reboot -f”重新启动挂起的节点,几秒钟后集群就会恢复健康。
没有“-f”的重启不起作用,因为无法停止 MariaDB 服务。即使在几个小时后,冻结的节点也不会从集群中删除。
命令“mysqlcheck -A -e”对所有表显示“OK”。所以我希望没有人被腐败。
我对此感到绝望,因为数据库一直很稳定。:-(
有人有想法吗?
我们的配置:
- 每台服务器都有 8 个 CPU 内核、32 GB RAM 并使用 SSD 运行。
- 带有最新更新的 Ubuntu 20.04 LTS
- MariaDB 10.5.8
- “wsrep_protocol_version” 10
我们有两个包含 2-3 百万条数据记录的表。其他表(大约还有 10 个)有 1 到 60.000 条数据记录。该数据库每秒访问大约 100 次。