gpt4 book ai didi

mysql - 无法重新创建mysql用户

转载 作者:搜寻专家 更新时间:2023-10-30 23:45:57 25 4
gpt4 key购买 nike

我在 Debian 3.2.54-2 x86_64 上使用 mysql-server 5.5.41-0+wheezy1

我在使用 mysql 表的 web 应用程序上遇到一些问题(与 mysql 无关),所以我正在重新安装该应用程序

我开始使用 aptitude remove packagename 来删除我的应用程序和 mysql-server,但它似乎没有删除/删除当前使用的 mysql 数据库

当我重新安装 mysql-server 时,以前的数据库仍在使用。我使用命令 drop user olduser 删除以前的用户以创建一个新用户,同时删除旧数据库 drop database olddb

mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+

现在,当我用新名称重新创建数据库时,它是成功的,但是如果我重新创建相同的旧用户 create user 'olduser'@'localhost' identified by 'somesecret'; 它会总是说 ERROR 1396 (HY000): Operation CREATE USER failed for 'olduser'@'localhost' 创建不同的用户是成功的,但是这个重新创建同一个旧用户的问题困扰着我。有什么问题或我错过了什么吗?

我已经尝试过 flush privileges

最佳答案

嗯,在没有任何数据库访问权限的情况下调试它有点困难,这个错误在 MySQL 中很常见,但通常 FLUSH PRIVILEGES 可以修复它。无论如何,如果用户真的掉线了,你可以通过这种方式绕过它:

CREATE USER 'anyuser'@'localhost' IDENTIFIED BY 'test123';
UPDATE mysql.user SET USER='olduser' WHERE USER='anyuser';

请注意,要完全删除用户,您必须删除这些表中与其关联的所有数据:columns_privdbprocs_privtables_priv。然后最后执行flush privileges。

来自文档:

DROP USER does not automatically drop or invalidate databases or objects within them that the old user created. This includes stored programs or views for which the DEFINER attribute names the dropped user. Attempts to access such objects may produce an error if they execute in definer security context. (For information about security context, see Section 18.5, “Access Control for Stored Programs and Views”.)

关于mysql - 无法重新创建mysql用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28553599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com