J3.x:Yinelenen kullanıcı adları güncelleme sorunu
From Joomla! Documentation
Bazı web sitelerinde, Joomla 3.9.16 sürümüne güncelleme, yinelenen kullanıcı adları nedeniyle bir veritabanı hatasına neden olur. Bunun için panik yapmayın - yükseltme çoğunlukla sorunsuz bir şekilde tamamlanmıştır ve her zamanki gibi çalışır, kalan veritabanı değişikliği aşağıdaki talimatları izledikten sonra uygulanabilir.
Bildirilen hatalar
Kullanıcılar, sitelerinde yinelenen bir anahtar nedeniyle başarısız bir veritabanı sorgusu ile ilgili bir güncelleme hatası alır #__users
3.9.15 veya daha yeni bir sürümden yükseltme yaparken tablo.
Etkilenen sürümler
Bu sadece Joomla! sürüm(leriyle) ilgilidir: 3.9.16
Nedeni nedir
Web sitenizde birden fazla kullanıcı var #__users
aynı kullanıcı adına sahip bir tablodur, bu da yanlış hesaba yanlış hesap sahibi tarafından erişilebilmesinden kaynaklanan bir güvenlik hususudur.
Nasıl düzeltilir
İncelemeniz gerekecek #__users
ve eski kullanıcı hesaplarını kaldırarak veya tüm kullanıcı adları benzersiz olana kadar kullanıcı adını değiştirerek yinelenen kullanıcı adlarını düzeltin. Bu işlem tamamlandıktan sonra, yükseltmeyi tamamlamak için veritabanı şeması düzeltme aracını 3.9.16'ya yükselttiyseniz (yükseltme işleminden önce bu incelemeyi yaparsanız bu adım gerekli değildir).
Joomla, gerçekleştirilecek doğru eylemi otomatik olarak belirleyemez ve sonuç olarak bu adımı sizin için gerçekleştiremez - site sahibi olarak sizin tarafınızdan düzeltilmelidir.
Hangi kullanıcı adlarının çoğaltıldığını görüntülemek için veritabanınızda aşağıdaki SQL Sorgusu çalıştırılabilir:
SELECT username FROM #__users GROUP BY username HAVING COUNT(*) > 1
One possible way to make resolving this simpler might be to remove all users who have never visited the site. Though this should be done with care, and ensure to backup the table first. After running this query, you can check again how many duplicate users you have.
DELETE FROM #__users WHERE lastvisitDate = "0000-00-00 00:00:00"