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
stdin: is not a tty hatası
ssh ile remote olarak bir komut çalıştırmak istediğimde “stdin: is not a tty” hatası aldım.
Çözümü şöyle :
/etc/bashrc içindeki mesg y satırının başına # koyup iptal ettim.
Sonrada
source /etc/bashrc
komutunu çalıştırdım.
Sorun çözüldü.
Posted in Linux on February 2nd, 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
Text dosyasının başına satır numarası ekleme.
[root@efffe ~]# cat kursad.txt satir 1 satir 2 satir 3 satir 4 satir 5
gibi bir text dosyanız var ve bütün satırların başına satır numarası koymak istiyorsunuz.
Bunun için linuxte nl isimli bir komut var
[root@efffe ~]# nl kursad.txt 1 satir 1 2 satir 2 3 satir 3 4 satir 4 5 satir 5
veya
[root@efffe ~]# less -N kursad.txt 1 satir 1 2 satir 2 3 satir 3 4 satir 4 5 satir 5
kullanabilirsiniz.
Fakat daha özelleştirilmiş birşeyler isterseniz awk ile bunu yapabilirsiniz.
[root@efffe ~]# awk 'BEGIN{FS=",";OFS="|"} {$1=$1; print NR,$0}' kursad.txt > satirnumarali.txt
komutunu verdiğinizde satirnumarali.txt dosyasına satır numaralı şekilde yazacaktır.
[root@efffe ~]# cat satirnumarali.txt 1|satir 1 2|satir 2 3|satir 3 4|satir 4 5|satir 5
Posted in Linux, Scripting on December 8th, 2011 by Kürşad DARA | | 0 Comments
sudo komutu geç cevap veriyorsa
[kursad@kursad ~]$ sudo su -
komutunu girdiğinizde root olmanız çok uzun zaman alıyorsa çözümü basit.
[root@kursad ~]# hostname kursad
komutu ile çıkan makine ismini öğrenin.
Daha sonra bu makine ismini /etc/hosts dosyasında 127.0.0.1 satırının en sonuna ekleyin.
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 kursad ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
Şimdi tekrar tekrar normal bir kullanıcı ile sudo su – komutunu denediğinizde hemen root olacaksınız vakit almadan.
Posted in Linux on September 29th, 2011 by Kürşad DARA | | 0 Comments
Clickatell API’sini kullanarak nagios ile sms uyarısı gönderme
Bunun için öncelikle Clickatel firmasından gerekli üyeliği almalısınız.
Size verilen kullanıcı ve api bilgilerini aşağıdaki gibi /etc/nagios3/commands.cfg dosyasına yazın.
define command{ command_name host-notify-by-sms command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$ \nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | wget "http:/ /api.clickatell.com/http/sendmsg?user=USERNAME&password=PASSWORD&&api_id=API_ID&to=$CONTACTEMAIL$&text='** $NOTIFICATIONTYPE$ Host Alert: $HOSTNAME$ is $HOSTSTATE$ @ $LONGDATETIME$ **'" } define command{ command_name service-notify-by-sms command_line /usr/bin/printf "%b" "***** Nagios *****\n\nNotification Type: $NOTIFICATIONTYPE$\nHost: $HOSTNAME$ \nState: $HOSTSTATE$\nAddress: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\nDate/Time: $LONGDATETIME$\n" | wget "http:/ /api.clickatell.com/http/sendmsg?user=USERNAME&password=PASSWORD&&api_id=API_ID&to=$CONTACTEMAIL$&text='** $NOTIFICATIONTYPE$ Service Alert: $SERVICEDESC$ on $HOSTNAME$ State: $SERVICESTATE$ @ $LONGDATETIME$ **'" }
Daha sonra /etc/nagios3/conf.d/contacts_nagios2.cfg dosyası içine aşağıdaki gibi notification komutlarını girin. ( Kırmızı renkteki satırlar )
# Kursad DARA #################### define contact{ contact_name swn_kursadd_sms alias Kursad DARA service_notification_period nonworkhours host_notification_period nonworkhours service_notification_options w,c,r host_notification_options d,u,r service_notification_commands service-notify-by-sms host_notification_commands host-notify-by-sms pager 532xxxxxxx }
Sonrasında
/usr/sbin/nagios3 -v /etc/nagios3/nagios.cfg
komutu ile nagios konfigürasyonunuzu kontrol edip hata yapmadığınızdan emin olun. Hata varsa düzeltmeniz gerekecek.
Hata yok ise
service nagios3 restart
ile nagios servisini tekrar başlatın.
Artık herhangi bir uyarı durumunda nagios size sms ile bilgi verecektir.
Posted in Linux, Nagios on September 16th, 2011 by Kürşad DARA | | 0 Comments
Apache’de Rewrite modülü ve htaccess kullanımının aktif edilmesi
Yapmanız gereken httpd.conf dosyasında aşağıdaki satırın başındaki # i kaldırmak ya da yoksa bu satırı eklemek.
LoadModule rewrite_module modules/mod_rewrite.so
Ardından,
Rewrite modülünü hangi dizin altında kullanacaksanız onun için aşağıdaki konfigürasyonu eklemek.
<Directory /webdizini/> Options FollowSymLinks AllowOverride ALL Order allow,deny Allow from all </Directory>
Bunu da ekledikten sonra apache’yi yeniden başlatmanız (restart) veya konfigürasyonu tekrar yüklemeniz (reload) gerekmektedir.
Sonrasında nerde .htaccess kullanmak istiyorsanız orada bu dosyayı oluşturup kurallarınızı yazabilirsiniz.
Detaylı bilgi için : http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html
Posted in Apache, Linux on December 9th, 2010 by Kürşad DARA | | 0 Comments
Domain bazlı php konfigürasyon ayarı yapma
upload_tmp_dir parametresini örnek alalım.
apache konfigürasyon dosyasında
<Directory /dizinadi> php_admin_value upload_tmp_dir /dizinadi/tmp </Directory>
şeklinde bir konfigürasyon girdiğinizde /dizinadi klasörünü root dizin olarak kullanan domainlerde upload_tmp_dir parametresi artık /dizinadi/tmp seklinde kullanılacaktır.
Posted in Apache, Linux on September 1st, 2010 by Kürşad DARA | | 0 Comments
dizin/domain bazında mod_security kapatmak için
domain konfigurasyonunun olduğu dosya da ya da httpd.conf dosyasına aşağıdaki gibi bir konfigürasyon girip webserver i yeniden başlattığınızda artık o dizin altından çalışan domainlerde mod_security çalışmayacaktır.
Posted in Apache, Linux on August 9th, 2010 by Kürşad DARA | | 0 Comments
OpenSSL ile 2048 bit CSR oluşturma
Önce key dosyasını oluşturuyoruz.
[root@localhost ~]# openssl genrsa -out keydosyası.key 2048 Generating RSA private key, 2048 bit long modulus ..............................................................+++ ...............................................+++ e is 65537 (0x10001)
Eğer yukardaki komuta -des3 gibi bir parametre eklerseniz key dosyanız şifre korumalı olacaktır. Web sunucunuzu yeniden başlattığınızda size bu şifreyi soracaktır. O yüzden çok gerekli olmadığı durumlarda kullanmamak lazım.
[root@localhost ~]# openssl req -nodes -newkey rsa:2048 -keyout keydosyasi.key -out csrdosyasi.csr Generating a 2048 bit RSA private key ............................................................................+++ ..........................................+++ writing new private key to 'keydosyasi.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [GB]:TR State or Province Name (full name) [Berkshire]:NA Locality Name (eg, city) [Newbury]:Istanbul Organization Name (eg, company) [My Company Ltd]:test Organizational Unit Name (eg, section) []:IT Common Name (eg, your name or your server's hostname) []:www.test.com Email Address []:info@test.com Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:
Bundan sonrasında apache’ye gerekli konfigürasyonu girmek kalıyor.
Posted in Apache, Linux on August 9th, 2010 by Kürşad DARA | | 0 Comments
« Previous Page — Next Page »