Rumah >pangkalan data >tutorial mysql >Ralat MySQL 1449: Bagaimana untuk Membetulkan Masalah 'Pengguna Definer Tidak Wujud'?
Pengenalan
Apabila bekerja dengan MySQL, pengguna mungkin menghadapi mesej ralat yang menunjukkan bahawa pengguna penentu untuk objek pangkalan data tidak wujud. Ralat ini, kod 1449, biasanya berlaku apabila mengimport objek daripada pangkalan data atau pelayan lain di mana pengguna penentu asal tidak lagi wujud.
Sebab
Pengguna penentu ialah pengguna di mana paparan pangkalan data, pencetus atau prosedur dicipta. Apabila objek pangkalan data diimport ke sistem lain, pengguna penentu juga mesti wujud pada sistem destinasi. Jika pengguna penentu tidak wujud, MySQL akan membuang ralat 1449.
Penyelesaian
1. Tukar Definer
Untuk menyelesaikan isu ini, anda boleh menukar pengguna definer kepada pengguna yang wujud pada sistem destinasi. Ini boleh dilakukan semasa proses import dengan mengalih keluar pernyataan DEFINER daripada tempat pembuangan.
Jika objek telah diimport, anda boleh menukar penentu kemudian menggunakan langkah berikut:
Untuk Pandangan:
SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='your-database-name';
Untuk Prosedur Tersimpan:
UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%';
2. Cipta Pengguna Hilang
Jika pengguna penentu tidak wujud pada sistem destinasi, anda boleh menciptanya menggunakan pernyataan GRANT. Gantikan "someuser" dengan nama pengguna yang tiada:
GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password'; FLUSH PRIVILEGES;
Pertimbangan Tambahan
Dengan mengikuti langkah ini, anda boleh menyelesaikan ralat 1449 dan berjaya mengimport atau mengurus pangkalan data objek yang mempunyai pengguna penentu.
Atas ialah kandungan terperinci Ralat MySQL 1449: Bagaimana untuk Membetulkan Masalah 'Pengguna Definer Tidak Wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!