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';