MySQL租户模式下,删除schema下的数据报错

【 使用环境 】测试环境
【 OB or 其他组件 】OB
【 使用版本 】4.2.1
【问题描述】MySQL租户模式下,删除schema下的表数据报错:ERROR 1449 (HY000): User not exist
【复现路径】
1. 以root用户登录
2. delete from vpa.phone where id=111;
报错:ERROR 1449 (HY000): User not exist

你查询一下 这个信息 select * from vpa.phone; 看一下报错不

不报错,正常的

你用use vpa;
在执行一下 这个语句
delete from phone where id=111;

也是报错:ERROR 1449 (HY000): User not exist

你查询一下 你这个root用户的权限信息 后期权限做过什么修改么?

没改过root权限,以下是root权限信息
*************************** 1. row ***************************
host: %
user: root
password: 30d664ff******
select_priv: Y
insert_priv: Y
update_priv: Y
delete_priv: Y
create_priv: Y
drop_priv: Y
reload_priv: N
shutdown_priv: N
process_priv: Y
file_priv: Y
grant_priv: Y
reference_priv: N
index_priv: Y
alter_priv: Y
show_db_priv: Y
super_priv: Y
create_tmp_table_priv: N
lock_tables_priv: N
execute_priv: N
repl_slave_priv: Y
repl_client_priv: Y
create_view_priv: Y
show_view_priv: Y
create_routine_priv: N
alter_routine_priv: N
create_user_priv: Y
event_priv: N
trigger_priv: N
create_tablespace_priv: N
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: ob_native_password
authentication_string:
password_expired:
account_locked: N
drop_database_link_priv: Y
create_database_link_priv: Y

你用root用户可以desc到这张表么

可以desc vpa.phone;
执行update和delete都报错:ERROR 1449 (HY000): User not exist

select * from mysql.user\G; 看下

跟踪trace id看看这个update语句执行流程是啥样的
1)设置trace信息
SET ob_enable_show_trace=‘ON’;

2)执行sql。

3)获取上个命令的trace
select last_trace_id();

4)获取trace对应的节点
select query_sql,svr_ip from gv$ob_sql_audit where trace_id=‘第三步获取的trace信息’;

5)取对应的svr_ip节点 过滤日志
grep “第三步获取的trace信息” observer.log*
grep “第三步获取的trace信息” rootservice.log*

你好,这边看你点了采纳。问题解决了么
可以分享一下原因么

感谢大佬,根据trace追踪发现了问题。

1、根据在 observer.log* 中过滤的信息,发现[lt=9] TRIGGER(spec_source=PACKAGE t_vpa_phone_del
[lt=5][errcode=-5542] procedure/function not found (db_name=, package_name=, routine_name=saveline, ret=-5542)
2、说明表上有触发器,检查触发器内容,发现调用saveline存储过程
3、检查发现saveline存储过程确实不存在
4、删除t_vpa_phone_del触发器,删除vpa.phone语句执行正常。

1 个赞

在你上一个回答下面了回复了原因,再次感谢大佬

2 个赞