Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat MySQL 1449: 'Pengguna Ditentukan sebagai Definer Tidak Wujud'?

Bagaimana untuk Menyelesaikan Ralat MySQL 1449: 'Pengguna Ditentukan sebagai Definer Tidak Wujud'?

DDD
DDDasal
2024-12-10 11:18:11738semak imbas

How to Resolve MySQL Error 1449:

Ralat MySQL 1449: Pengguna yang Ditentukan sebagai Definer Tidak Wujud

Ralat ini biasanya timbul apabila mengimport paparan, pencetus atau prosedur daripada pangkalan data lain di mana pencipta objek tidak lagi wujud.

Punca:

  • Pengguna yang menentukan objek dalam pangkalan data asal tidak wujud pada pangkalan data atau pelayan semasa.

Penyelesaian:

Pilihan 1: Tukar Definer

Untuk Pandangan:

  1. Jana penyataan ALTER menggunakan SQL ini:

    SELECT CONCAT("ALTER DEFINER=youruser@host VIEW ",
    table_name, " AS ", view_definition, ";")
    FROM information_schema.views
    WHERE table_schema='your-database-name';
  2. Salin dan laksanakan ALTER pernyataan.

Untuk Prosedur Tersimpan:

Gunakan sintaks berikut, menggantikan 'yuruser' dengan pengguna yang dikehendaki:

UPDATE `mysql`.`proc` p SET definer = 'user@%' WHERE definer='root@%'

Pilihan 2: Buat yang Hilang Pengguna

  1. Buat pengguna yang hilang dengan keistimewaan yang sesuai:

    • Untuk Pelayan Pembangun Setempat:

      GRANT ALL ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
    • Untuk MariaDB:

      GRANT ALL PRIVILEGES ON *.* TO 'someuser'@'%' IDENTIFIED BY 'complex-password';
      FLUSH PRIVILEGES;
  2. Berikan hanya keistimewaan yang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat MySQL 1449: 'Pengguna Ditentukan sebagai Definer Tidak Wujud'?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn