ERROR 126 (HY000): Incorrect key file for table ‘/mnt/mysql-tmp/#sql_1a76_2.MYI’; try to repair it hatası
mySQL de bir query çalıştırdığınızda;
ERROR 126 (HY000): Incorrect key file for table '/mnt/mysql-tmp/#sql_1a76_2.MYI'; try to repair it
hatasını alıyorsanız bunun birkaç sebebi olabilir.
1. mySQL’in temp tabloları oluşturduğu dizini RAM üzerinde oluşturacak şekilde ayırdıysanız ve örneğin 2GB alan verdiyseniz ve gönderdiğiniz querynin oluşturduğu temp tablosu 2GB’tan büyük ise bu hatayı alırsınız. Bunun çözümü ya RAM’de temp tablo için ayırdığınız alanı artıracaksınız ya da querynizi optimize edeceksiniz.
/dev/ram1 2.0G 0 2.0G 0% /mnt/mysql-tmp
kursad:/mnt/mysql-tmp # ls -la /mnt/mysql-tmp/ total 2.0G drwxrwxrwt 2 root root 80 Feb 16 11:01 . drwxr-xr-x 9 root root 4.0K Feb 15 14:16 .. -rw-rw---- 1 mysql mysql 2.0G Feb 16 11:01 #sql_1a76_0.MYD -rw-rw---- 1 mysql mysql 1.0K Feb 16 11:01 #sql_1a76_0.MYI
2. İlgili tablo bozuk olabilir. Repair edip sorunu çözebilirsiniz.
Posted in Linux, MySQL on February 16th, 2012 by Kürşad DARA | | 0 Comments
InnoDB: Unable to lock ./xxxxxx/xxxxx.ibd, error: 11 hatası.
InnoDB bir veritabanında sunucuyu resetledikten sonra aşağıdaki hatayı aldık.
120209 05:12:29 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data/ 120209 5:12:29 [Note] Plugin 'FEDERATED' is disabled. InnoDB: The log sequence number in ibdata files does not match InnoDB: the log sequence number in the ib_logfiles! 120209 5:12:29 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... InnoDB: Unable to lock ./xxxxxx/xxxxx.ibd, error: 11 InnoDB: Check that you do not already have another mysqld process InnoDB: using the same InnoDB data or log files. 120209 5:12:29 InnoDB: Assertion failure in thread 47546054463296 in file fil/fil0fil.c line 635 InnoDB: Failing assertion: ret InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.1/en/forcing-recovery.html InnoDB: about forcing recovery. 120209 5:12:29 - mysqld got signal 6 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. We will try our best to scrape up some info that will hopefully help diagnose the problem, but since we have already crashed, something is definitely wrong and this may fail. key_buffer_size=104857600 read_buffer_size=52428800 max_used_connections=0 max_threads=512 threads_connected=0 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 52536408 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. thd: 0x0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = (nil) thread_stack 0x40000 /usr/local/mysql/bin/mysqld(my_print_stacktrace+0x2e)[0x8ad46e] /usr/local/mysql/bin/mysqld(handle_segfault+0x322)[0x5e05c2] /lib64/libpthread.so.0[0x39a0a0e4c0] /lib64/libc.so.6(gsignal+0x35)[0x39a0230215] /lib64/libc.so.6(abort+0x110)[0x39a0231cc0] /usr/local/mysql/bin/mysqld[0x7acc5c] /usr/local/mysql/bin/mysqld[0x7acdf9] /usr/local/mysql/bin/mysqld(fil_space_get_size+0xde)[0x7b407e] /usr/local/mysql/bin/mysqld(fil_check_adress_in_tablespace+0x9)[0x7b4159] /usr/local/mysql/bin/mysqld(trx_sys_doublewrite_init_or_restore_pages+0x2d5)[0x82b6d5] /usr/local/mysql/bin/mysqld(recv_recovery_from_checkpoint_start+0x175b)[0x7dbe0b] /usr/local/mysql/bin/mysqld(innobase_start_or_create_for_mysql+0x115f)[0x81b8cf] /usr/local/mysql/bin/mysqld[0x777d64] /usr/local/mysql/bin/mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x31)[0x6cf411] /usr/local/mysql/bin/mysqld[0x75513a] /usr/local/mysql/bin/mysqld(_Z11plugin_initPiPPci+0x875)[0x757c95] /usr/local/mysql/bin/mysqld[0x5e0d95] /usr/local/mysql/bin/mysqld(main+0x1c1)[0x5e50b1] /lib64/libc.so.6(__libc_start_main+0xf4)[0x39a021d974] /usr/local/mysql/bin/mysqld(fmod+0x62)[0x513c0a] The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains information that should help you find out what is causing the crash. 120209 05:12:29 mysqld_safe mysqld from pid file /usr/local/mysql/data//xxxxxx.pid ended
Çözüm olarak mysql i durdurup *.ibd dosyalarını taşıyıp tekrar cp -a ile kopyaladık ve mysql i çalıştırdık sorunumuz düzeldi.
Basit shell script şöyle :
#!/bin/bash for i in `ls -a *.ibd` do mv $i $i.bak cp -a $i.bak $i done
Posted in Linux, MySQL on February 9th, 2012 by Kürşad DARA | | 0 Comments
mySQL `ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction` hatası
Herhangi bir mySQL’de InnodB olan bir veritabanında update gibi table-lock koyan sorgusu çalıştırırken
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
hatasını alıyorsanız, konfigürasyon dosyasından
innodb_lock_wait_timeout=300
ekleyip mySQL i yeniden başlatırsanız sorununuz çözülecektir. Parametrenin değeri olan 300 saniye cinsindendir ve varsayılan değeri 50 sn. dir.
Bakınız : http://dev.mysql.com/doc/refman/5.0/en/innodb-parameters.html#sysvar_innodb_lock_wait_timeout
Posted in Linux, MySQL on January 9th, 2012 by Kürşad DARA | | 0 Comments
Mysql replikasyonda duplicate errors hatasını es geçmek için
/etc/my.cnf ( ya da mysql konfig dosyanız hangisi ise ) dosyasına aşağıdaki parametreyi ekleyin mysql i restart edin.
slave-skip-errors = 1062
Posted in Genel on April 28th, 2009 by Kürşad DARA | | 0 Comments
ERROR 1607 (HY000): Cannot create stored routine hatası
MySQL’de procedure ya da function oluştururken
ERROR 1607 (HY000): Cannot create stored routine `< ....>`. Check warnings
şeklinde bir hata alıyorsanız yapmanız gereken sorgularınızın başına
SET @@sql_mode := "";
yazmanız olacaktır.
Bu problem su an için MySQL 5.1.23-rc versiyonunda var. Bildiğim kadarı ile herhangi bir patch yayınlanmadı. Bir sonraki versiyonlarda çözüleceğinden bahsediliyor.
Boşu boşuna kafayı yememeniz için :)
Posted in MySQL on March 10th, 2008 by Kürşad DARA | | 0 Comments
MySQL transactional enginelerin karşılaştırılması
İncelemekte fayda var.
MySQL transactional enginelerin karşılaştırılması
Posted in MySQL on January 11th, 2008 by Kürşad DARA | | 0 Comments
MySQL master loglarını temizlemek
purge master logs to <son binary log dosyasının ismi>
örnek :
purge master logs to "mysql-bin.000297"
Bu komut ile bütün master logları mysql-bin.000297 adı altında birleştirmiş olacaksınız.
Posted in MySQL on January 5th, 2008 by Kürşad DARA | | 0 Comments
[Warning] Stored routine error hatası
Eğer bu hatayı görüyorsanız mysqld.log dosyasında stored procedurelerin definerlarını düzenlemeniz gerekiyor.
080102 10:37:23 [Warning] Stored routine x: invalid value in column mysql.proc.collation_connection. 080102 10:37:23 [Warning] Stored routine x: invalid value in column mysql.proc.db_collation. 080102 10:37:23 [Warning] Stored routine x: invalid value in column mysql.proc.character_set_client.
Posted in MySQL on January 5th, 2008 by Kürşad DARA | | 0 Comments
MySQL sunucusunda slow loglar nasıl aktif edilir?
/etc/my.cnf dosyanızın içine aşağıdaki satırları ekleyip MySQL sunucunuzu restart ederseniz slow logları tutmaya başlayacaktır. Windows kullanıcılarında my.cnf dosyası genellikle c:\Program Files\MySQL Server dizini altında bulunur.
#Log dosyasının yazılacağı adres log-slow-queries=/var/log/slowsql.log #Sorgular minimum kaç dakika sürerse loglasın. long_query_time=4
Posted in MySQL on January 5th, 2008 by Kürşad DARA | | 0 Comments
« Previous Page