问题标签 [mariadb-10.3]

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 投票
0 回答
82 浏览

mysql - 如何修复 ERROR 1044、ERROR 1046 和无法更改用户密码?

我已经厌倦了尝试这么多不同的事情,我什至无法绕过正在运行的错误。我知道你们中的一些人可能会认为这是一个重复的问题,但我已经看到了几十个问题,所以我认为答案没有那么简单,也没有重复。


这是我尝试过的许多解决方案中的一些:

用户的更新命令被拒绝

无法使用 UPDATE 更改 MySQL 上的用户密码

错误:选择命令拒绝用户 '<userid>'@'<ip-address>' 用于表 '<table-name>'

MySQL 错误:#1142 - SELECT 命令拒绝用户

https://mariadb.com/kb/en/set-password/

错误 1698 (28000): 拒绝用户 'root'@'localhost' 的访问

https://forums.mysql.com/read.php?10,588296

https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html


# mysql -u root -p

当它要求输入密码时,无论我输入什么,它都会显示


show databases;只显示

当我输入

请注意,它%不是 localhost,而是暗示正在发生的事情?您是否遇到过同样的问题并能够解决?


即使我输入了正确的密码。我有另一个用户,但我无法更改其密码。


节目


我觉得我真的什么都试过了,我的意思是我已经这样好几个小时了,过去我已经多次更改 mysql 密码,在 windows 和 linux 中使用控制台,我不知道发生了什么!


EIDT:正如评论中所建议的,这里是输出SELECT user, host, plugin from mysql.user;


这是输出到> SHOW GRANTS;


0 投票
2 回答
42 浏览

sql - 为第 1 列和第 2 列的每个新组合生成新 ID

我想为第 1 列和第 2 列的每个新组合生成一个新的 ID 号。例如:

由于随着时间的推移会添加新的行和新的值,这应该能够自动更新。我尝试了 DENSE_RANK(),这似乎有效。但是当我把它作为一个计算列中的语句时它给出了一个错误,所以我想这是不可能的?(对 SQL 来说仍然很新)。

谢谢你的帮助!

错误消息:#1901 - 函数或表达式 'dense_rank()' 不能在 `ProductIdentifier 的 GENERATED ALWAYS AS 子句中使用

编辑: 我基本上想要的是基于 2 列将一行链接到另一个表。当然,我也可以连接两列,但我在某处读到,使用字符串执行此操作会更慢。它最终将是一个大表,目前有 200.000 多行并增长到数百万行。这是我可以/应该做的事情吗?

0 投票
0 回答
26 浏览

select - 更改服务器后查询执行时间增加

我已将测试数据库服务器从 windows 更改为 synology。在此更改之后,有一个查询需要 9-10 秒才能在 Synology 上获得结果。在 Windows 服务器上,获取数据需要 0.18 秒。当我导出数据时,索引和触发器也被导出。所以索引没有问题。 

我还比较了两台服务器上的“解释 SQL”结果。一样没有区别。

是什么导致了这里的问题?如何减少执行时间?

0 投票
16 回答
17280 浏览

mysql - SQLSTATE [HY000]:一般错误:1835 LARAVEL 上的通信数据包格式错误

突然得到

SQLSTATE[HY000]: 一般错误: 1835 Malformed communication packet (SQL: select * from tb_userswhere ( username= 121211) limit 1)

在 Laravel 上。

我已经检查过这个:MySQL: ERROR 2027 (HY000): Malformed packet,但它似乎是不同的情况。

  1. 之前使用 SSH 登录(使用:mysql -u -p)后,我已成功登录 MySQL。
  2. 我已经成功地直接从远程 PC 登录到 MySQL(使用:mysql -h [IP] -u -p)。

但是我的 Laravel 得到了我之前提到的错误。有这方面的经验吗?

0 投票
1 回答
115 浏览

sql - 非常基本的 IF EXISTS 语句不起作用

我真的不明白为什么我的说法:

正在返回此错误:

我正在使用 MariaDB 10.3。有任何想法吗?

附加信息

这当然是一个简化的例子。我想做的是,具体来说:

..,因此如果该记录包含给定数据,则更新给定记录的字段,否则什么也不做。要生成将用于更新的数据,我需要查询其他表的值并进行一些计算。如果实际上没有什么可更新的,我想避免这些查询+计算。在这种情况下,什么也不做。因此,我猜想在语句的子句中EXIST放置一个WHERE子句UPDATE会导致许多查询和计算都是徒劳的。

0 投票
3 回答
657 浏览

sql - 如果存在则更新 A 记录,否则不执行任何操作,包括 short-cicruit

我想做的是具有以下逻辑的东西:

..,因此如果该记录包含给定数据,则更新给定记录的字段,否则什么也不做。要生成将用于更新的数据,我需要查询其他表的值并进行一些计算。如果实际上没有什么可更新的,我想避免这些查询+计算。在这种情况下,什么也不做。因此,我猜想将 EXIST 子句放在 UPDATE 语句的 WHERE 子句中会导致许多查询和计算徒劳无功。

我如何只能有条件地更新而什么都不做,并确保仅在需要更新时才进行计算用于更新的值所需的所有查询 + 计算?然后,最后,只有在complex_queries_and_calculations不为 NULL 时才进行更新?

到目前为止,我最好的解决方案使用公用表表达式(WITH子句),这使得它不可能短路。无论如何,这样你就可以理解我想要实现的逻辑,我正在展示我迄今为止一直在尝试的东西(没有成功;下面的代码不起作用,我不知道为什么..):

更新(仍然说语法错误,仍然无法正常工作)

甚至这都不起作用(仍然在 UPDATE 行上报告语法错误):

(避免冗余 target_column = target_column 更新的最终更好的方法欢迎)

使用 select 它可以工作,所以我完全不理解它为我的更新查询返回的语法错误 #1064:

附加信息

看起来 MariaDB 实际上不支持CTEs withUPDATE语句;如果我错了,请纠正我......所以我尝试了以下方法:

现在它说:

0 投票
1 回答
217 浏览

php - Drupal 站点显示 Index.php 文件的内容

我试图将我在本地主机上启动的 drupal 站点移动到家中的服务器。该数据库既从我的本地主机导出并存储在服务器上。

nginx.conf文件内容如下

该文件存储的目录是/etc/nginx,drupal 站点存储在/var/www/html/arctic_kittiwake/目录中。

我还安装了 php7.4-fpm 和 mariadb-10.3。

0 投票
0 回答
113 浏览

sql - 在加入另一个表时更新同一列两次未按预期工作

考虑我有两张桌子,t1并且t2. t1有两列:c1c2t2有两列:c1c3。我们在两个表中插入值:

t1使用此查询进行更新:

将产生下一个结果:c2列将分别等于 40,50。这意味着,第一次更新被评估,然后下一次更新使用第一个更新值,所以它就像使用c2 = c2 + 10 + 20.

考虑到我需要t1再次更新,但这一次,t2使用此查询加入表:

此查询将产生下一个结果:c2column 将分别等于 60,70,这意味着第一次更新被忽略,c2 = c2+20最后只被评估。我期望结果是 70,80。

这是一个工作示例

我知道我没有t2在连接中使用,但在我的真实示例中我需要使用t2并且我需要使用第一个更新值更新同一列两次。

为什么使用 join 进行相同的更新会产生不同的结果,并且是否可以在不将更新拆分为两个单独的更新的情况下使其工作?

编辑:我被告知在 MariaDB 10.1 上使用相同的代码,但在升级到 10.3 后它失败了。(不幸的是,我找不到在线的 MariaDB 10.1 fiddle 来自己测试它)

0 投票
1 回答
24 浏览

mysql - 在 3 列上创建索引的最佳方法是什么,如果可能的话?

我们有一个执行全表扫描的 SQL 查询:

是否可以创建索引来优化此查询?

现在我已经创建了 2 个索引:

  • 一个在 date_added
  • 一对(添加日期、客户 ID 和 api_id)

但似乎查询仍在进行全盘扫描。

0 投票
1 回答
174 浏览

mysql - Mariadb JSON_EXTRACT with condition on Json object

How do I extract only value based on "id" = "BAR"

desired output

I tried with this but it does not work.