问题标签 [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.
mysql - 如何修复 ERROR 1044、ERROR 1046 和无法更改用户密码?
我已经厌倦了尝试这么多不同的事情,我什至无法绕过正在运行的错误。我知道你们中的一些人可能会认为这是一个重复的问题,但我已经看到了几十个问题,所以我认为答案没有那么简单,也没有重复。
这是我尝试过的许多解决方案中的一些:
错误:选择命令拒绝用户 '<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;
sql - 为第 1 列和第 2 列的每个新组合生成新 ID
我想为第 1 列和第 2 列的每个新组合生成一个新的 ID 号。例如:
由于随着时间的推移会添加新的行和新的值,这应该能够自动更新。我尝试了 DENSE_RANK(),这似乎有效。但是当我把它作为一个计算列中的语句时它给出了一个错误,所以我想这是不可能的?(对 SQL 来说仍然很新)。
谢谢你的帮助!
错误消息:#1901 - 函数或表达式 'dense_rank()' 不能在 `ProductIdentifier 的 GENERATED ALWAYS AS 子句中使用
编辑: 我基本上想要的是基于 2 列将一行链接到另一个表。当然,我也可以连接两列,但我在某处读到,使用字符串执行此操作会更慢。它最终将是一个大表,目前有 200.000 多行并增长到数百万行。这是我可以/应该做的事情吗?
select - 更改服务器后查询执行时间增加
我已将测试数据库服务器从 windows 更改为 synology。在此更改之后,有一个查询需要 9-10 秒才能在 Synology 上获得结果。在 Windows 服务器上,获取数据需要 0.18 秒。当我导出数据时,索引和触发器也被导出。所以索引没有问题。
我还比较了两台服务器上的“解释 SQL”结果。一样没有区别。
是什么导致了这里的问题?如何减少执行时间?
mysql - SQLSTATE [HY000]:一般错误:1835 LARAVEL 上的通信数据包格式错误
突然得到
SQLSTATE[HY000]: 一般错误: 1835 Malformed communication packet (SQL: select * from
tb_users
where (username
= 121211) limit 1)
在 Laravel 上。
我已经检查过这个:MySQL: ERROR 2027 (HY000): Malformed packet,但它似乎是不同的情况。
- 之前使用 SSH 登录(使用:mysql -u -p)后,我已成功登录 MySQL。
- 我已经成功地直接从远程 PC 登录到 MySQL(使用:mysql -h [IP] -u -p)。
但是我的 Laravel 得到了我之前提到的错误。有这方面的经验吗?
sql - 非常基本的 IF EXISTS 语句不起作用
我真的不明白为什么我的说法:
正在返回此错误:
我正在使用 MariaDB 10.3。有任何想法吗?
附加信息
这当然是一个简化的例子。我想做的是,具体来说:
..,因此如果该记录包含给定数据,则更新给定记录的字段,否则什么也不做。要生成将用于更新的数据,我需要查询其他表的值并进行一些计算。如果实际上没有什么可更新的,我想避免这些查询+计算。在这种情况下,什么也不做。因此,我猜想在语句的子句中EXIST
放置一个WHERE
子句UPDATE
会导致许多查询和计算都是徒劳的。
sql - 如果存在则更新 A 记录,否则不执行任何操作,包括 short-cicruit
我想做的是具有以下逻辑的东西:
..,因此如果该记录包含给定数据,则更新给定记录的字段,否则什么也不做。要生成将用于更新的数据,我需要查询其他表的值并进行一些计算。如果实际上没有什么可更新的,我想避免这些查询+计算。在这种情况下,什么也不做。因此,我猜想将 EXIST 子句放在 UPDATE 语句的 WHERE 子句中会导致许多查询和计算徒劳无功。
我如何只能有条件地更新而什么都不做,并确保仅在需要更新时才进行计算用于更新的值所需的所有查询 + 计算?然后,最后,只有在complex_queries_and_calculations
不为 NULL 时才进行更新?
到目前为止,我最好的解决方案使用公用表表达式(WITH
子句),这使得它不可能短路。无论如何,这样你就可以理解我想要实现的逻辑,我正在展示我迄今为止一直在尝试的东西(没有成功;下面的代码不起作用,我不知道为什么..):
更新(仍然说语法错误,仍然无法正常工作)
甚至这都不起作用(仍然在 UPDATE 行上报告语法错误):
(避免冗余 target_column = target_column 更新的最终更好的方法欢迎)
使用 select 它可以工作,所以我完全不理解它为我的更新查询返回的语法错误 #1064:
附加信息
看起来 MariaDB 实际上不支持CTE
s withUPDATE
语句;如果我错了,请纠正我......所以我尝试了以下方法:
现在它说:
php - Drupal 站点显示 Index.php 文件的内容
我试图将我在本地主机上启动的 drupal 站点移动到家中的服务器。该数据库既从我的本地主机导出并存储在服务器上。
nginx.conf文件内容如下
该文件存储的目录是/etc/nginx,drupal 站点存储在/var/www/html/arctic_kittiwake/目录中。
我还安装了 php7.4-fpm 和 mariadb-10.3。
sql - 在加入另一个表时更新同一列两次未按预期工作
考虑我有两张桌子,t1
并且t2
. t1
有两列:c1
和c2
。t2
有两列:c1
和c3
。我们在两个表中插入值:
t1
使用此查询进行更新:
将产生下一个结果:c2
列将分别等于 40,50。这意味着,第一次更新被评估,然后下一次更新使用第一个更新值,所以它就像使用c2 = c2 + 10 + 20
.
考虑到我需要t1
再次更新,但这一次,t2
使用此查询加入表:
此查询将产生下一个结果:c2
column 将分别等于 60,70,这意味着第一次更新被忽略,c2 = c2+20
最后只被评估。我期望结果是 70,80。
我知道我没有t2
在连接中使用,但在我的真实示例中我需要使用t2
并且我需要使用第一个更新值更新同一列两次。
为什么使用 join 进行相同的更新会产生不同的结果,并且是否可以在不将更新拆分为两个单独的更新的情况下使其工作?
编辑:我被告知在 MariaDB 10.1 上使用相同的代码,但在升级到 10.3 后它失败了。(不幸的是,我找不到在线的 MariaDB 10.1 fiddle 来自己测试它)
mysql - 在 3 列上创建索引的最佳方法是什么,如果可能的话?
我们有一个执行全表扫描的 SQL 查询:
是否可以创建索引来优化此查询?
现在我已经创建了 2 个索引:
- 一个在 date_added
- 一对(添加日期、客户 ID 和 api_id)
但似乎查询仍在进行全盘扫描。
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.