Windows Plesk Panelde “This DNS record already exists.” Hatası ve Çözümü

Windows Plesk Panelde “This DNS record already exists.” ya da “Bu DNS kaydı zaten var.” Hatası ve Çözümü.

Bazen sunucudan silinen alan adlarının dns kayıtları dns serverdan silinmesine rağmen plesk in kendi veritabanında silinmemiş olabiliyor. Bu durumda Pleskin veritabanından bu dns kayıtlarını silmek gerekiyor. Linuxte de aynı yöntem işe yararken tek fark mysql de oturum açma yöntemi oluyor. Windows için aşağıdaki yöntemi uygulayabilirsiniz.

Windows ta cmd komut konsolu ekranını açınız.

C:\Users\Administrator>plesk db
mysql: Switching to the default character set ‘latin1’.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17789
Server version: 5.7.21 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

Şimdi mysql e erişmiş olduk , sıra o alan adına ait kayıtların eğer var ise dns_recs tablosundan silinmesine geldi, aşağıdaki sorguda ayhanarda.com yazan yeri silinecek alan adınız ile değiştiriniz.

mysql>DELETE FROM dns_recs WHERE DisplayHost LIKE ‘%ayhanarda.com%’;

Query OK, 13 rows affected (0.01 sec)

Ve işlem bu kadar.

Ayhan ARDA

Tuning Primer Kurulumu ve Kullanımı

Tuning Primer Kurulumu ve Kullanımı

Tuning Primer bir Mysql Tuner Alternatifi , aşağıdaki komutları sırası ile dosyasını indirip çalıştırabilirsiniz. Mysql Tuner kadar olmasada yeterli bilgiler mevcut ve kullanmaya değer.

[root@ayhanarda ~]# cd /usr/local/bin

[root@ayhanarda bin]# wget https://launchpadlibrarian.net/78745738/tuning-primer.sh

Şimdi sıra çalıştırmaya geldi.

[root@ayhanarda bin]# tuning-primer.sh

Çalıştırıldığında mysql in conf u ile elde ettiği değerleri en iyi optimizasyon için karşılaştırarak size öneriler sunuyor.

Mysql in versiyonundan ne kadar süredir servis verdiğine , açık olduğu son süre içinde kaç query ye cevap verdiğine, anlık bağlantı sayısına , slow query olup olmadığına , cache size ınızın yeterli olup olmadığına , max connections değerinizin anlık değerinizi karşılayıp karşılamadığına , memory kullanımınıza , join lerinize , temp alanınıza , tablo lock sayınıza kadar ölçüp biçip size öneriler sunuyor. Örneğin ben çaqlıştırdımda çıktısı aşağıdaki gibi oldu.

Ancak öncesinde 48 saat kadar mysql servisinizin açık olması daha doğru sonuçlar almanızı sağlayacaktır.

MySQL Version 10.0.34-MariaDB x86_64

Uptime = 1 days 18 hrs 21 min 54 sec
Avg. qps = 1402
Total Questions = 213875408
Threads Connected = 34

SLOW QUERIES
The slow query log is NOT enabled.
Current long_query_time = 10.000000 sec.
You have 8 out of 213875496 that take longer than 10.000000 sec. to complete
Your long_query_time seems to be fine

WORKER THREADS
Current thread_cache_size = 200
Current threads_cached = 103
Current threads_per_sec = 0
Historic threads_per_sec = 0
Your thread_cache_size is fine

MAX CONNECTIONS
Current max_connections = 200
Current threads_connected = 35
Historic max_used_connections = 137
The number of used connections is 68% of the configured maximum.
Your max_connections variable seems to be fine.

No InnoDB Support Enabled!

MEMORY USAGE
Max Memory Ever Allocated : 13.54 G
Configured Max Per-thread Buffers : 8.38 G
Configured Max Global Buffers : 7.79 G
Configured Max Memory Limit : 16.18 G
Physical Memory : 23.36 G
Max memory limit seem to be within acceptable norms

KEY BUFFER
Current MyISAM index space = 1.53 G
Current key_buffer_size = 1.00 G
Key cache miss rate is 1 : 99348
Key buffer free ratio = 54 %
Your key_buffer_size seems to be too high.
Perhaps you can use these resources elsewhere

QUERY CACHE
Query cache is enabled
Current query_cache_size = 800 M
Current query_cache_used = 800 M
Current query_cache_limit = 100 M
Current Query cache Memory fill ratio = 100.00 %
Current query_cache_min_res_unit = 4 K
MySQL won’t cache query results that are larger than query_cache_limit in size

SORT OPERATIONS
Current sort_buffer_size = 1 M
Current read_rnd_buffer_size = 768 K
Sort buffer seems to be fine

JOINS
/usr/local/bin/tuning-primer.sh: line 402: export: `2097152′: not a valid identifier
Current join_buffer_size = 40.00 M
You have had 576657 queries where a join could not use an index properly
You have had 1303 joins without keys that check for key usage after each row
join_buffer_size >= 4 M
This is not advised
You should enable “log-queries-not-using-indexes”
Then look for non indexed joins in the slow query log.

OPEN FILES LIMIT
Current open_files_limit = 138451 files
The open_files_limit should typically be set to at least 2x-3x
that of table_cache if you have heavy MyISAM usage.
Your open_files_limit value seems to be fine

TABLE CACHE
Current table_open_cache = 69120 tables
Current table_definition_cache = 65960 tables
You have a total of 59378 tables
You have 65487 open tables.
The table_cache value seems to be fine

TEMP TABLES
Current max_heap_table_size = 256 M
Current tmp_table_size = 1.46 G
Of 17855233 temp tables, 32% were created on disk
Effective in-memory tmp_table_size is limited to max_heap_table_size.
Perhaps you should increase your tmp_table_size and/or max_heap_table_size
to reduce the number of disk-based temporary tables
Note! BLOB and TEXT columns are not allow in memory tables.
If you are using these columns raising these values might not impact your
ratio of on disk temp tables.

TABLE SCANS
Current read_buffer_size = 1 M
Current table scan ratio = 309 : 1
read_buffer_size seems to be fine

TABLE LOCKING
Current Lock Wait ratio = 1 : 1582
You may benefit from selective use of InnoDB.
If you have long running SELECT’s against MyISAM tables and perform
frequent updates consider setting ‘low_priority_updates=1’

Ayhan ARDA

innodb_log_file_size değişikliği

InnoDb Log File Size Değiştirme

Bu işlem , Innodb de kritik olabilecek bir işlem , dolayısı ile once shutdown mode unun 1 olup olmadığına bakıyoruz , mysql e login olup sorgumuzu çalıştıralım.

mysql> show variables like ‘innodb_fast_shutdown%’;

+———————-+——-+
| Variable_name | Value |
+———————-+——-+
| innodb_fast_shutdown | 2 |
+———————-+——-+
1 row in set (0.00 sec)

Görüldüğü üzere değerimiz 2 , bunu sağlıklı işlem yapabilmek için 1 yapalım.

mysql> SET GLOBAL innodb_fast_shutdown=1;

Tekrar bir önceki komuut çalıştırırsak değerin 1 e döndüğünü görebiliriz.

Şimdi mysql i stop edelim.

[root@ayhanarda root]# service mysql stop

şimdi log dosyalarımızı silmeyelimde farklı bir yere atalım , ne olur ne olmaz.

[root@ayhanarda root]# cd /var/lib/mysql/
[root@ayhanarda mysql]# mv ib_logfile* /tmp/

şimdi my.cnf de ilgili değeri değiştirelim.

[root@ayhanarda mysql]# nano /etc/my.cnf

innodb_log_file_size = 750M
(bunu kendi yapınıza göre ayarlayın , ben 24 gb ram li üzerinde 2000 mysql veritabanı koşan sunucuda çalıştırıyorum , yapacağınız değeri bulmak için mysqltuner kullanmanız faydalı olabilir)

Şimdi mysql i start edelim.

[root@ayhanarda root]# service mysql start

şimdi mysql dizininde iken ls -al | grep ib_* derseniz 2 adet log dosyasının belirlediğiniz değere ayarlandığını görebilirsiniz ya da yine mysql sorgusu ile tüm innodb_log değerlerini görebilirsiniz.

[root@ayhanarda mysql]# mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 15108
Server version: 10.0.34-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

MariaDB [(none)]> show variables like ‘innodb_log%’;
+——————————-+———–+
| Variable_name | Value |
+——————————-+———–+
| innodb_log_arch_dir | ./ |
| innodb_log_arch_expire_sec | 0 |
| innodb_log_archive | OFF |
| innodb_log_block_size | 512 |
| innodb_log_buffer_size | 8388608 |
| innodb_log_checksum_algorithm | innodb |
| innodb_log_compressed_pages | ON |
| innodb_log_file_size | 786432000 |
| innodb_log_files_in_group | 2 |
| innodb_log_group_home_dir | ./ |
+——————————-+———–+
10 rows in set (0.00 sec)

Ayhan ARDA

MySQLTuner Kurulumu

MySQLTuner Kurulumu

MySQLTuner, Mysql servisinin performansını ölçmek istediğimiz durumlarda kullanabileceğimiz Perl ile yazılmış başarılı bir araç. basit bir kurulum ile geliyor, performans ve stabiilteiçin öneriler sunuyor , mysqltuner çalıştırılmadan önce mysql servisiniz ne kadar süredir çalışıyor ise mysqltuner’dan o kadar doğru değerler alabilirsiniz. MySQL/MariaDB/Percona Server için kullanabilirsiniz , sadece mysql için olduğunu düşünmeyin. 300 den fazla indikator ile geliyor.

Kurulum aşağıdaki gibi , komutları sırası ile çalıştırmanız yeterli.

wget http://mysqltuner.pl/ -O mysqltuner.pl
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/basic_passwords.txt -O basic_passwords.txt
wget https://raw.githubusercontent.com/major/MySQLTuner-perl/master/vulnerabilities.csv -O vulnerabilities.csv
perl mysqltuner.pl

Ayhan ARDA

The system received an error from the “MySQL” database “mysql”: ER_PASSWORD_NO_MATCH (Can’t find any matching row in the user table) hatası ve çözümü

Genellikle cpanel de mysql veritabanı ve kullanıcısı oluşturmaya çalışırken aşağıdaki hatayı alabilirsiniz.

The system received an error from the “MySQL” database “mysql”: ER_PASSWORD_NO_MATCH (Can’t find any matching row in the user table)

Bu durumda yapmanız gereken şey my.cnf dosyanızda skip-name-resolve satırını kapatmanız.

nano /etc/my.cnf

skip-name-resolve

#skip-name-resolve

service mysql restart

Tekrar mysql oluşturduğunuzda bu hatayı almayacaksınız.

Ayhan ARDA

Centos 6.x üzerine Apache , Php , Mysql ,Phpmyadmin Kurulumu (LAMP)

Öncelikle mevcut kurulu tüm paketleri güncelleyelim.

yum update

Mysql Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install mysql mysql-server

Sistem reboot edildiğinde otomatik olarak açılışta çalışır duruma gelmesini sağlayalım.

chkconfig –levels 235 mysqld on

Servisi başlatalım.

/etc/init.d/mysqld start

Mysql için şifre atayalım , default şifre boş gelir. Enter ile geçiniz , sonrasında istediğiniz şifreyi belirleyiniz , sorulara kendinize uygun cevaplar veriniz ,örneğin test database i kaldırılsın mı , root kullanıcısı uzaktan da erişilebilsin mi gibi..

mysql_secure_installation

Apache Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install httpd

Sistem reboot edildiğinde otomatik olarak açılışta çalışır duruma gelmesini sağlayalım.

chkconfig –levels 235 httpd on

Servisi başlatalım.

/etc/init.d/httpd start

Şimdi /var/www/html altına yüklediğiniz dosyalar erişilebilir olacaktır , apache nin konfigurasyon dosya yolu da /etc/httpd/conf/httpd.conf şeklindedir.

Php5 Kurulumu:

Kurulum için aşağıdaki komutu çalıştırınız;

yum -y install php

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Php5 Testi:

nano /var/www/html/info.php

İçine aşağıdaki kodu giriniz.

<?php
phpinfo();
?>

Şimdi http://ipadresiniz/info.php yi browserdan çağırdığınızda info.php yi görmelisiniz.

Php5 e Mysql desteği verelim;

yum -y install php-mysql

Şimdi sık kullanılan cms ler için (wordpress,joomla,drupal..) bilindik php modüllerini ekleyelim.

yum -y install php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel

Apc kuralım;

yum -y install php-pecl-ap

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Tekrar info.php ye baktığınızda kurulu modülleri görebiliyor olacaksınız.

PhpMyAdmin Kurulumu:

RPMforge GPG anahtarını import edelim.

64 bit centos kurduğunuzu varsayıyorum, ilgili rpm paketini indirelim.

yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el6.rf.x86_64.rpm

Aşağıdaki komutla phpmyadmin kuralım.

yum -y install phpmyadmin

Şimdi phpmyadmin configurasyonunda phpmyadmin in her yerden erişilebilir olmasını sağlayalım.

nano /etc/httpd/conf.d/phpmyadmin.conf

Açılan dosya da aşağıdaki satırları siliniz ya da başına # ekleyiniz.

<Directory “/usr/share/phpmyadmin”>
Order Deny,Allow
Deny from all
Allow from 127.0.0.1
</Directory>

Olması gereken hali , tabi izin için özel bir ip de ekleyebilirsiniz , test makinaıs olduğu için ben her yerden erişmek istiyorum ve başına # koyarak etkisiz hale getirdim.

#<Directory “/usr/share/phpmyadmin”>
#  Order Deny,Allow
#  Deny from all
#  Allow from 127.0.0.1
#</Directory>

Şimdi authentication tip ini değiştirelim.

nano /usr/share/phpmyadmin/config.inc.php

Açılan dosya da

$cfg[‘Servers’][$i][‘auth_type’] = ‘cookie’;

satırını bulup

$cfg[‘Servers’][$i][‘auth_type’] = ‘http’;

şeklinde değiştiriniz ve kaydediniz.

Apache servisini yeniden başlatalım.

/etc/init.d/httpd restart

Şimdi http://ipadresiniz/phpmyadmin.php yi browserdan çağırdığınızda phpmyadmin i görmelisiniz.Kullanıcı adı root , şifresi ise mysql secure installation bölümünde tanımladığınız şifredir. Umarım yardımcı olmuştur.

Saygılarımla

Ayhan ARDA

MySQL – myisamchk: error: myisam_sort_buffer_size is too small hatası

Büyük boyutlu myisam tablolarınızı repair ederken başlıkta belirtilen hatayı alabilirsiniz. Sebebi myisam sort buffer size değerine takılmanızdır. Bunun için tablo repair işlemlerinizi aşağıdaki şekilde yapabilirsiniz.

root@ayhanarda [/var/lib/mysql/ayhan_testdb]# /etc/init.d/mysql stop
Shutting down MySQL… SUCCESS!
root@ayhanarda [/var/lib/mysql/ayhan_testdb]# myisamchk -r -q ayhan_posts.MYI –sort_buffer_size=3G
– check record delete-chain
– recovering (with sort) MyISAM-table ‘ayhan_posts.MYI’
Data records: 0
– Fixing index 1
– Fixing index 2
– Fixing index 3
– Fixing index 4
– Fixing index 5
– Fixing index 6
– Fixing index 7
Data records: 720336
root@ayhanarda [/var/lib/mysql/ayhan_testdb]# /etc/init.d/mysql start
Starting MySQL… SUCCESS!

Ayhan ARDA

Ayrıca; Mysql error : Can’t create new tempfile: ‘*.TMD file şeklinde bir hata alırsanız da aynı çözümü kullanabilirsiniz.

Mysql Strict Mode Aktif mi , Pasif mi?

Mysql Strict Mode Aktif mi , Pasif mi?

Bunu mysql sunucunuzda aşağıdaki sorguyu çalıştırarak öğrenebilirsiniz.

mysql> SELECT @@sql_mode;
+——————————————–+
| @@sql_mode |
+——————————————–+
| STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
+——————————————–+
1 row in set (0.00 sec)

Yukarıda aktif gözüküyor.

Bunu doğrulamanın bir diğer yolu ise aşağıdaki sorgudur.

mysql> SHOW VARIABLES LIKE ‘%SQL%’;
Connection id:    159718988
Current database: *** NONE ***

+————————–+——————————————–+
| Variable_name            | Value                                      |
+————————–+——————————————–+
| sql_auto_is_null         | OFF                                        |
| sql_big_selects          | ON                                         |
| sql_big_tables           | OFF                                        |
| sql_buffer_result        | OFF                                        |
| sql_log_bin              | ON                                         |
| sql_log_off              | OFF                                        |
| sql_low_priority_updates | OFF                                        |
| sql_max_join_size        | 18446744073709551615                       |
| sql_mode                 | STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION |
| sql_notes                | ON                                         |
| sql_quote_show_create    | ON                                         |
| sql_safe_updates         | OFF                                        |
| sql_select_limit         | 18446744073709551615                       |
| sql_slave_skip_counter   | 0                                          |
| sql_warnings             | OFF                                        |
+————————–+——————————————–+
15 rows in set (0.01 sec)

Kapatmak için my.cnf ya da my.ini dosyanızı açınız.

sql-mode=”STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION”

Yukarıdaki gibi bir satır görüyor iseniz bunu aşağıdaki gibi değiştirip mysql servisini restart edebilirsiniz.

sql-mode=”NO_ENGINE_SUBSTITUTION”

Eğer böyle bir satır yok ise kendiniz aşağıdaki satırı ekleyip servisi restart edebilirsiniz.

sql_mode=NO_ENGINE_SUBSTITUTION

Ayrıca belirtmekte fayda var ki , eğer strict mode aktif çalışıyor iseniz mysql güvenliğiniz daha üst seviyededir. Fakat sunucu üzerinde birden çok fazla db çalıştırıyor iseniz açmanızda bir sakınca bulunmamaktadır. Bu modda MySQL’e has bir çok özellik veritabanı uyumluluğu amacıyla devre dışı bırakılır. Daha doğru sorgular yazmanız ve birçok farklı nedenden dolayı strict mode tavsiye edilir.

Ayhan ARDA

MySQL: Plugin ‘InnoDB’ registration as a STORAGE ENGINE failed. hatası

Genellikle inno db log dosyası boyutunu değiştirdiğimizde karşılaştığımız bu hatanın çözümü için öncelikle mysql servisini durdurunuz , sonrasında data dizininiz hangisi ise oraya girip ib_logfile0 ve ib_logfile1 dosyalarının adını değiştirip mysql servisini tekrar başlatınız. Muhtemelen hata giderilmiş olacak ve log dosyaları yeni boyutu ile tekrar oluşturulmuş olacaktır.

Bir diğer yöntem ise my.ini dosyanızda innodb_log_file_size değerini eski haline getirmeniz şeklindedir.

Plesk Panelde Table ‘mysql.servers’ doesn’t exist hatası

Table ‘mysql.servers’ doesn’t exist hatası çözümü;

Ssh ile erişerek aşağıdaki komutları uygulayınız.

[root@webhostingsitesi.com]#mysql -uadmin -p`cat /etc/psa/.psa.shadow` -h localhost

mysql> use mysql;

mysql> CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=’MySQL Foreign Servers table’;

Ayhan ARDA

KOD :

CREATE TABLE `servers` ( `Server_name` char(64) NOT NULL, `Host` char(64) NOT NULL, `Db` char(64) NOT NULL, `Username` char(64) NOT NULL, `Password` char(64) NOT NULL, `Port` int(4) DEFAULT NULL, `Socket` char(64) DEFAULT NULL, `Wrapper` char(64) NOT NULL, `Owner` char(64) NOT NULL, PRIMARY KEY (`Server_name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL Foreign Servers table';