[ERROR] InnoDB: The Auto-extending innodb_system data file

[ERROR] InnoDB: The Auto-extending innodb_system data file Bu hata mesajı, MySQL veritabanınızın InnoDB depolama motoru için sistem veri dosyasının otomatik genişlemesiyle ilgili bir sorun olduğunu gösteriyor. Bu hatayı çözmek için aşağıdaki adımları izleyebilirsiniz:

MySQL Sunucusunu Durdurun:

sudo systemctl stop mysql

MySQL Konfigürasyon Dosyasını Düzenleyin: MySQL’in yapılandırma dosyası genellikle /etc/mysql/mysql.conf.d/mysqld.cnf veya /etc/mysql/my.cnf gibi bir yerde bulunur. Bu dosyayı bir metin düzenleyici ile açın. Örneğin, nano kullanabilirsiniz:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

innodb_data_file_path Ayarını Düzenleyin: Dosya içinde innodb_data_file_path satırını bulun. Bu satır, InnoDB veri dosyalarının boyutunu ve otomatik genişleme davranışını belirtir. Bu satırı aşağıdaki gibi düzenleyin:

innodb_data_file_path = ibdata1:10M:autoextend

Bu ayar, InnoDB veri dosyasının boyutunun 10 MB’den başlayarak otomatik olarak genişlemesini sağlar. İstediğiniz boyutu belirleyebilirsiniz.

MySQL Sunucusunu Başlatın:

sudo systemctl start mysql

Hata Kontrolü: MySQL sunucunu başlattıktan sonra hata mesajının hala görünüp görünmediğini kontrol edin. Eğer hata devam ederse, MySQL hata günlüklerini inceleyin (/var/log/mysql/error.log) ve daha fazla ayrıntı almak için gerektiğinde sorununuzun kaynağını belirlemek için bu günlükleri kullanın.

Not: MySQL yapılandırma dosyasının konumu sistem yapılandırmasına ve MySQL sürümüne bağlı olarak değişebilir. Yukarıdaki adımlar genel bir yaklaşım sunar, ancak dosya konumu ve adı farklılık gösterebilir. MySQL yapılandırma dosyasının tam yolu ve adı hakkında bilgi edinmek için mysql --help | grep my.cnf komutunu kullanabilirsiniz.

Mysql Mükerrer kayıtları Silme

    1. Hangi sütuna göre mükerrer kayıtları bulmak istediğinize karar verin.
    2. Aşağıdaki SQL sorgusunu kullanarak, hangi sütuna göre kaç adet mükerrer kayıt olduğunu bulun:

SELECT column_name, COUNT()
FROM table_name
GROUP BY column_name
HAVING COUNT() > 1;

    • Mükerrer kayıtları silmek için aşağıdaki SQL sorgusunu kullanın (bu örnekte “column_name” sütunu kullanıldı):

DELETE t1 FROM table_name t1
INNER JOIN table_name t2
WHERE t1.id < t2.id
AND t1.column_name = t2.column_name;

  • Bu sorgu, aynı değere sahip olan ancak farklı id’lere sahip olan kayıtlardan birini silerek mükerrer kayıtları kaldıracaktır. Ancak, bu işlemi yapmadan önce, veritabanınızın yedeğini almanızı öneririm.

2. Bir örnek Tablo bu şekil olsun.

CREATE TABLE ogrenciler (
    id INT PRIMARY KEY,
    ad VARCHAR(50),
    soyad VARCHAR(50),
    tc_kimlik VARCHAR(11)
);

Aynı TC kimliğine sahip çift kayıtları silmek için aşağıdaki SQL sorgusunu kullanabilirsiniz:

DELETE t1 FROM ogrenciler t1
INNER JOIN ogrenciler t2 
WHERE t1.id < t2.id AND t1.tc_kimlik = t2.tc_kimlik;

Bu sorgu, ogrenciler tablosunda aynı TC kimliğine sahip ancak farklı id değerlerine sahip olan çift kayıtları silecektir. t1.id < t2.id koşulu, aynı TC kimliğine sahip kayıtlardan sadece birini tutmak için kullanılır. Yani daha düşük id değerine sahip olan kayıt korunurken, diğerleri silinir.

Bu sorguyu kullanarak çift kayıtları temizleyebilirsiniz. Ancak bu işlemi yapmadan önce veritabanınızın yedeğini almayı unutmayın, çünkü verileri geri getirmek zor olabilir.

 

WordPress kategori toplamlarını güncelleme

Bugün benimde ihtiyacım oldu dışarıdan veri girdiğinizde kategorilerdeki toplam konu sayısını wordpress güncellemiyor bunu SQL ile kendiniz güncellemeniz gerekiyor bunu yapmanız için sql de aşağıdaki kodu çalıştırmak. Bunu çalıştırdığınızda kategoriler alanındaki Toplam alanı güncellenmiş olacaktır. SQL kodunu çalıştırmadan SQL bir backup almakta fayda var kolay gelsin.

UPDATE wp_term_taxonomy SET count = (
SELECT COUNT(*) FROM wp_term_relationships rel 
    LEFT JOIN wp_posts po ON (po.ID = rel.object_id) 
    WHERE 
        rel.term_taxonomy_id = wp_term_taxonomy.term_taxonomy_id 
        AND 
        wp_term_taxonomy.taxonomy NOT IN ('link_category')
        AND 
        po.post_status IN ('publish', 'future')
)

wp_term_taxonomy update , wp_update_term_count_now , kategori toplamı güncelleme

MYSQL – Kayıt aşamasında tarihi mysql tarafından verdirme

 

Mysql veri gönderirken tarih yollamayıp kayıt aşamasında bu tarihi yada saati mysql tarafından vermek istiyorsanız default value kısmına “current_timestamp()” eklemeniz yeterli bu şekilde o sütüna mysql tarafından bir tarih atanacaktır. Bunu phpmyadmin veya adminer gibi scriptlerdede çalıştıra bilirsiniz.

CMD – MYSQL .tsv olarak dosya çıkarma cmd mysql export

mysql -u root -p domainler -e "select url from domainler where url like '%haber%'" -B /g "haber.tsv"

 

Üsteki konut vasıtasıyla CMD kullanarak dosyayı dışarı csv, tsv olarak kolayca dışarı çıkarta bilirsiniz.

Öncelikle cmd yazıp

mysql -u root -p

 

Login olup

Use DATABASE ISMI

ile database seçtikten sonra en üstteki komutu yazarak Sorgunuzdaki dosyayı dışarı atabilirsiniz.

Mysql idleri tekrar sıralama

Mysql’de databasedeki ID numaralarınızı tekrardan sıralata bilirsiniz. Bu durum genelde silinen veriler yüzünden ID lerde boşluklar oluşmaktadır. Aşağıdaki komutları çalıştırmadan önce YEDEK almayı unutmayın. Ek olarak tablolar arası join işlemli database’niz varsa bu işlemi yapmayın. Sadece kendi başına bir tablo ise bu işlemi yapmanızı öneririz.

SET @num := 0;

UPDATE TABLOADI SET id = @num := (@num+1);

ALTER TABLE TABLOADI AUTO_INCREMENT = 1;