Kullandığınız MySQL sunucunun 32 bit mi 64 bit mi olduğunu anlamak
Bunu anlamak için 2 yöntem var aslında ikisi de aynı kapıya çıkıyor.
1. Komut satırından
[root@mgw03 ~]# mysql -V mysql Ver 14.14 Distrib 5.5.16, for Linux (x86_64) using readline 5.1
2. MySQL konsolundan
mysql> \s ( veya status ) -------------- mysql Ver 14.14 Distrib 5.5.16, for Linux (x86_64) using readline 5.1 Connection id: 9 Current database: Current user: kursad@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server version: 5.5.16-log MySQL Community Server (GPL) Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: latin1 Db characterset: latin1 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /var/lib/mysql/mysql.sock Uptime: 2 min 42 sec Threads: 1 Questions: 134612 Slow queries: 0 Opens: 136 Flush tables: 1 Open tables: 129 Queries per second avg: 830.938 --------------
Posted in Linux, MySQL on November 19th, 2012 by Kürşad DARA | | 0 Comments
mySQL Too many open files hatası
MySQL loglarında aşağıdaki hatayla karşılaşabilirsiniz.
121117 23:21:03 InnoDB: Operating system error number 24 in a file operation. InnoDB: Error number 24 means 'Too many open files'.
Çözüm için my.cnf dosyanıza;
innodb_open_files=24000 open-files-limit=96000
Burada dikkat edilecek nokta open-files-limit parametresinin değeri innodb_open_files parametresinin yaklaşık 4-5 katı olarak set etmeniz.
MySQL i yeniden başlattığınızda sorun çözülecektir.
Detay için : http://dev.mysql.com/doc/refman/5.1/en/server-options.html#option_mysqld_open-files-limit
Posted in Linux, MySQL on November 17th, 2012 by Kürşad DARA | | 0 Comments
[Warning] IP address ‘xxx.xxx.xxx.xxx’ could not be resolved: Name or service not known hatası
MySQL log dosyasında aşağıdaki gibi bir hata alıyorsanız. Çözümü basit.
[Warning] IP address 'xxx.xxx.xxx.xxx' could not be resolved: Name or service not known
Muhtelemen sisteminizde username@xxx.xxx.xxx.xxx şeklinde bir kullanıcınız var.
Ve eğer MySQL skip-name-resolve parametresi ile açılmamış ise girdiğiniz xxx.xxx.xxx.xxx ipsinin dns kaydını sorgulayacaktır.
Bu açıdan my.cnf dosyanıza skip-name-resolve parametresi girip bu sorunu çözebilirsiniz.
skip-name-resolve
Tercihim skip-name-resolve kullanmaktan yana. Böylece MySQL dns sorgulaması ile uğraşmamış olur.
Posted in Linux, MySQL on November 17th, 2012 by Kürşad DARA | | 0 Comments
myisam ve innodb veritabanları için key_buffer_size ve innodb_buffer_pool_size hesaplayan query
İşinize yarayabilir.
Myisam için;
SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_key_buffer_size FROM (SELECT LEAST(POWER(2,32),KBS1) KBS FROM (SELECT SUM(index_length) KBS1 FROM information_schema.tables WHERE engine='MyISAM' AND table_schema NOT IN ('information_schema','mysql')) AA ) A, (SELECT 2 PowerOf1024) B;
mysql> SELECT CONCAT(ROUND(KBS/POWER(1024, -> IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), -> SUBSTR(' KMG',IF(PowerOf1024<0,0, -> IF(PowerOf1024>3,0,PowerOf1024))+1,1))inn -> recommended_key_buffer_size FROM -> (SELECT LEAST(POWER(2,32),KBS1) KBS -> FROM (SELECT SUM(index_length) KBS1 -> FROM information_schema.tables -> WHERE engine='MyISAM' AND -> table_schema NOT IN ('information_schema','mysql')) AA ) A, -> (SELECT 2 PowerOf1024) B; +-----------------------------+ | recommended_key_buffer_size | +-----------------------------+ | 2095M | +-----------------------------+ 1 row in set (43.45 sec)
InnoDB için;
SELECT CONCAT(ROUND(KBS/POWER(1024, IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999), SUBSTR(' KMG',IF(PowerOf1024<0,0, IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables WHERE engine='InnoDB') A, (SELECT 2 PowerOf1024) B;
mysql> SELECT CONCAT(ROUND(KBS/POWER(1024, -> IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.49999), -> SUBSTR(' KMG',IF(PowerOf1024<0,0, -> IF(PowerOf1024>3,0,PowerOf1024))+1,1)) recommended_innodb_buffer_pool_size -> FROM (SELECT SUM(data_length+index_length) KBS FROM information_schema.tables -> WHERE engine='InnoDB') A, -> (SELECT 2 PowerOf1024) B; +-------------------------------------+ | recommended_innodb_buffer_pool_size | +-------------------------------------+ | 93089M | +-------------------------------------+ 1 row in set (35.77 sec)
Kaynak : http://dba.stackexchange.com/questions/1/what-are-the-main-differences-between-innodb-and-myisam/2194#2194
Posted in Linux, MySQL on November 16th, 2012 by Kürşad DARA | | 0 Comments
rsync ile detaylı dosya aktarımı.
rsync kullanırken dosya transferinin ne aşamada olduğu, saniyede ne kadar dosya attığı vs gibi bilgileri görmek istiyorsanız :
–stats ve –progress parametrelerini ekleyebilirsiniz.
root#rsync -avz --progress --stats /home/* /data/ receiving incremental file list all14112012.sql 320110592 0% 9.08MB/s 1:19:49
Posted in Console, Linux on November 14th, 2012 by Kürşad DARA | | 0 Comments
Komut satırından çalışan bazı linux network / bandwidth izleme araçları
Linux’te kullanabileceğiniz bazı konsol bazlı network / bandwidth izleme araçları.
1. bwm-ng
Açıklama :
Bandidth Monitor NG konsol bazlı çalışan anlık ethernet istatistiklerini veren bir yazılım. Linux dışında BSD, Solaris Mac OS X işletim sistemlerinde de çalışıyor.
Ekran Görüntüsü :
Web sitesi :
http://www.gropp.org/?id=projects&sub=bwm-ng
2. iftop
Açıklama :
Konsol bazlı çalışan anlık ethernet istatistiklerini veren bir yazılım.
Ekran Görüntüsü :
Web sitesi :
http://www.ex-parrot.com/~pdw/iftop/
3. vnstat
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://humdi.net/vnstat/
4. iptraf
Açıklama :
Konsol bazlı network trafik izleme yazılımı. Bütün network istatistiklerini tutuyor.
Ekran Görüntüsü :
Web sitesi :
http://iptraf.seul.org/
5. bwbar
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://www.kernel.org/pub/software/web/bwbar/
6. iperf
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://sourceforge.net/projects/iperf/
7. ibmonitor
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://ibmonitor.sourceforge.net/
8. dstat
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://dag.wieers.com/home-made/dstat/
9. ifstat
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://gael.roualland.free.fr/ifstat/
10. ipfm
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://robert.cheramy.net/ipfm/
11. bmon
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://www.infradead.org/~tgr/bmon/
12. nload
Açıklama :
Konsol bazlı network trafik izleme yazılımı.
Ekran Görüntüsü :
Web sitesi :
http://sourceforge.net/projects/nload/
Posted in Genel, Linux on August 7th, 2012 by Kürşad DARA | | 0 Comments
LVM disk resize işlemi
Vmware üstünde çalışan bir linux makinenin diskini artırdım. LVM üstündende bunu yapmak gerekiyor tabi ki.
[root@localhost ~]# fdisk -l Disk /dev/sda: 85.9 GB, 85899345920 bytes 255 heads, 63 sectors/track, 10443 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0008a7d6 Device Boot Start End Blocks Id System /dev/sda1 * 1 64 512000 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 64 1306 9972736 8e Linux LVM Disk /dev/mapper/VolGroup-lv_root: 5981 MB, 5981077504 bytes 255 heads, 63 sectors/track, 727 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/VolGroup-lv_root doesn`t contain a valid partition table Disk /dev/mapper/VolGroup-lv_swap: 4227 MB, 4227858432 bytes 255 heads, 63 sectors/track, 514 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000 Disk /dev/mapper/VolGroup-lv_swap doesn`t contain a valid partition table
Öncelikle yeni bir partition oluşturuyoruz.
[root@localhost ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It`s strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 3 First cylinder (1306-10443, default 1306): Using default value 1306 Last cylinder, +cylinders or +size{K,M,G} (1306-10443, default 10443): Using default value 10443 Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
Reboot işleminden sonra, pvcreate komutu ile oluşturduğumuz diski LVM görecek şekilde oluşturuyoruz.
[root@localhost ~]# pvcreate /dev/sda3 Writing physical volume data to disk "/dev/sda3" Physical volume "/dev/sda3" successfully created
lvdisplay ile var olan konfigürasyona bakıyoruz.
[root@localhost ~]# lvdisplay --- Logical volume --- LV Name /dev/VolGroup/lv_root VG Name VolGroup LV UUID IqdsSn-2dBV-QDhf-Ym13-c7vy-v79b-EQv6UK LV Write Access read/write LV Status available # open 1 LV Size 5.57 GiB Current LE 1426 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 --- Logical volume --- LV Name /dev/VolGroup/lv_swap VG Name VolGroup LV UUID Bvh8l4-DNXF-WmXy-z7Hi-7oVi-VJhb-4Fl7wC LV Write Access read/write LV Status available # open 1 LV Size 3.94 GiB Current LE 1008 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:1
Sıra geldi Volume Group’u vgextend ile büyütmeye.
[root@localhost ~]# vgextend VolGroup /dev/sda3 Volume group "VolGroup" successfully extended
Baktığımızda;
[root@localhost ~]# vgdisplay --- Volume group --- VG Name VolGroup System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 7 VG Access read/write VG Status resizable MAX LV 0 Cur LV 2 Open LV 2 Max PV 0 Cur PV 2 Act PV 2 VG Size 79.50 GiB PE Size 4.00 MiB Total PE 20353 Alloc PE / Size 2434 / 9.51 GiB Free PE / Size 17919 / 70.00 GiB VG UUID QxKsuL-3ke0-sZHW-e4cA-Rqyq-6vRg-zjCc2m
LVM’de total size istediğimiz gibi oldu. Şimdi diskimizi büyütelim artık.
[root@localhost ~]# lvextend -L +70GB /dev/mapper/VolGroup-lv_root Extending logical volume lv_root to 75.57 GiB Insufficient free space: 17920 extents needed, but only 17919 available
Bu hatanın sebebi şu eklediğimiz boş alan tam olarak 70GB değil ( 69 küsür GB ) o yüzden 69GB olarak veriyoruz.
lvextend komutu ile de “Free PE / Size” alanında belirtilen kadar boş alanı kullanıp diski extend ediyoruz.
df ile baktığımızda göründüğü gibi disk alanını hala eskisi gibi.
[root@localhost ~]# df Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/VolGroup-lv_root 5749032 1584584 3872404 30% / tmpfs 1960684 0 1960684 0% /dev/shm /dev/sda1 495844 56486 413758 13% /boot
[root@localhost ~]# lvextend -L +69GB /dev/mapper/VolGroup-lv_root Extending logical volume lv_root to 74.57 GiB Logical volume lv_root successfully resized
Extend işleminden sonra resize2fs ile lvm e eklediğimiz disk alanını linux dosya sisteminde genişletiyoruz.
[root@localhost ~]# resize2fs /dev/mapper/VolGroup-lv_root resize2fs 1.41.12 (17-May-2010) Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required old desc_blocks = 1, new_desc_blocks = 5 Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 19548160 (4k) blocks. The filesystem on /dev/mapper/VolGroup-lv_root is now 19548160 blocks long.
df ile baktığımızda göründüğü gibi artık diskimiz istediğimiz boyuta büyüdü.
[root@localhost ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/VolGroup-lv_root 74G 1.6G 69G 3% / tmpfs 1.9G 0 1.9G 0% /dev/shm /dev/sda1 485M 56M 405M 13% /boot
Posted in File Systems, Linux on June 26th, 2012 by Kürşad DARA | | 0 Comments
Powermta Startup error: Error: host name “xxx” is not fully qualified, please configure ‘host-name’ and/or ‘domain-suffix’. hatası
PowerMTA sunucularından birini start etmek istediğimde aşağıdaki hatayı aldım.
[root@xxx ~]# /etc/init.d/pmta start Starting PowerMTA: [FAILED]
[root@xxx ~]# pmtad --debug 2012-04-24 12:35:56 Startup error: Error: host name "xxx" is not fully qualified, please configure 'host-name' and/or 'domain-suffix'.
Çözüm olarak hostname olarak full domain name set etmek gerekiyor.
[root@xxx sysconfig]# hostname xxx
[root@xxx sysconfig]# vi /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=no HOSTNAME=xxx.kursad.com GATEWAY=xxx.xxx.xxx.xxx
[root@xxx sysconfig]# hostname xxx.kursad.com
[root@xxx sysconfig]# hostname xxx.kursad.com
[root@xxx sysconfig]# /etc/init.d/pmta start Starting PowerMTA: [ OK ]
[root@xxx sysconfig]# pmtad --debug 2012-04-24 12:38:26 Startup error: PowerMTA is already running
Posted in Linux, Mail Servers on April 24th, 2012 by Kürşad DARA | | 0 Comments
Apache ve PHP’nin versiyon bilgilerini gizleme
Apache ve PHP’nin versiyon bilgilerini headerdan gizleme ihtiyacı duydum. Dursun diye buraya da koyayım bari.
Apache’nin versiyon bilgilerini saklamak için :
/etc/httpd/conf/httpd.conf dosyasında ( ya da sizin conf dosyasınız nerede ise ) aşağıdaki parametreleri ayarlayın.
ServerSignature Off ServerTokens ProductOnly
Siz aşağıdaki tablodan yararlanıp isterseniz başka değer verebilirsiniz.
ServerToken | Görüntülenecek Bilgi |
ProductOnly | Server: Apache |
Major | Server: Apache/2 |
Minor | Server: Apache/2.0 |
Minimal | Server: Apache/2.0.55 |
OS | Server: Apache/2.0.55 (Redhat) |
Full(veya boş) | Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 |
Parametreleri ayarlamadan önce :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:45:50 GMT Server: Apache/2.0.64 (Unix) mod_ssl/2.0.64 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:47:56 GMT Server: Apache X-Powered-By: PHP/5.2.9 Connection: close Content-Type: text/html
Gördüğünüz gibi Apache bilgileri gizlendi.
Şimdi PHP versiyon bilgilerini gizleyelim.
/etc/php.ini dosyasında ( sizin config dosyanız nerede ise ) aşağıdaki parametreleri ayarlayın.
expose_php Off
Parametreleri ayarladıktan sonra :
root@localhost:~# curl -I http://www.kursaddara.com HTTP/1.1 200 OK Date: Mon, 16 Apr 2012 06:48:47 GMT Server: Apache Connection: close Content-Type: text/html
Gördüğünüz gibi PHP versiyon bilgisi gitti.
Bu parametreleri değiştirdikten sonra apache’yi restart etmeniz gerekmektedir.
Posted in Apache, Linux, PHP on April 16th, 2012 by Kürşad DARA | | 0 Comments
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
« Previous Page — Next Page »