MySQL 錯誤1449:指定為定義者的使用者不存在
從以下位置匯入視圖、觸發器或過程時通常會出現此錯誤另一個資料庫,其中物件的建立者不再
原因:
解決方案:
選項1:更改定義器
對於視圖:
使用下列SQL 產生ALTER 語句:
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
用於預存程序:
使用以下語法,將「youruser」替換為所需的使用者:
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'
選項2:建立缺少的使用者
使用適當的方法建立缺少的使用者權限:
對於本機開發伺服器:
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
對於MariaDB:
GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
以上是如何解決 MySQL 錯誤 1449:「指定為定義者的使用者不存在」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!