Mysql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Mysql etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

26 Eylül 2021

Linux Mysql sunucu kurulumunda hata sonucu yeniden kurulum yapmak

 Linux Mint için Mysql 8 kurulumu yaptıktan sonra root kullanıcı erişiminde sorun yaşayınca şu sayfadaki adımları izleyerek çözüme ulaşabildim:

https://medium.com/@alef.duarte/cant-connect-to-local-mysql-server-through-socket-var-run-mysqld-mysqld-sock-155d580f3a06

Metni saklamak için sayfadan buraya yeniden ekliyorum: 

Cleaning the Backyard

sudo apt-get remove --purge mysql*

After that, check if everything is clean, run the following code, and hope nothing shows up

dpkg -l | grep mysql

If that doesn’t do the trick, like in my case I still had some installed…

Try to purge them individually, like so (php is just an innocent amidst the sinful, so leave it be) :

sudo apt-get remove --purge mysql-apt-config

And now, clean everything else

sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

Installing Mysql-server

wget http://repo.mysql.com/mysql-apt-config_0.8.15-1_all.deb

Once it is done, install it using:

sudo dpkg -i mysql-apt-config_0.8.15-1_all.deb

It will prompt you to choose a MySQL version, take mysql-5.7. I was taken by the greed of choosing 8.0, but it gave me more problems than I had wished for, then humbly get 5.7:

Now, we can properly install mysql-server:

sudo apt update && sudo apt install mysql-server

You’ll need to enter a password…make sure you’ll remember it ;)

Secure Mysql Installation

sudo mysql_secure_installation

Enter root password (I’ve told you to remember it) and…

Here’s when my nightmares started and I stumbled with:

Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

I noticed then that by default this service is not started, we have to start it, but using sudo service mysql start or sudo service mysqld start won’t start it, neither will sudo systemctl start mysql. They will just give you a bunch of problems, you should:

sudo /etc/init.d/mysql start

Now, we can again run:

sudo mysql_secure_installation

The settings I’ve used were:

Would you like to setup VALIDATE PASSWORD plugin? y
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Change the password for root?: n
Remove anonymous users? y
Disallow root login remotely? n
Remove test database and access to it? y
Reload privilege tables now? y

Making Sure Everything is Set

mysql -u root  -p

And then enter:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

Make sure you see something this

Now, if the authentication string is empty, we have to set up a new password for root. Still, in MySQL Monitor, run:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

And then reload grant tables:

mysql> FLUSH PRIVILEGES;

Now, check if our root user has an authentication_string:

mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;

7 Ocak 2020

Web site yönetim paneli yazılımı

Web sitesi yönetimi özellikle de tamamen kontrolü elinde bulundurmak istediğiniz özel bir cms sahibi olmak istediğiniz zamanlarda karmaşık hale gelebilir. Bir web yazılımcı olarak kendi geliştirdiğim web site yönetim paneli yazılımını kullanıyorum ve bu şekilde şimdiye kadar birçok müşterim için ihtiyaçlar doğrultusunda web site yönetim ihtiyacını karşılayacak şekilde özel bir yönetim paneli geliştirme konusunda hizmet sağlıyorum. Bazı müşterilerim beğendikleri hazır bir tema kullanmayı tercih ederken bazı müşterilerim ise özel bir tasarım yaptırmayı tercih ediyorlar. Her iki durumda da arayüzün bana teslim edilmesiyle birlikte müşteri ihtiyaçlarını analiz ederek kullanımı kolay ve pratik bir şekilde web sitesine ait içeriklerin ve verilerin yönetilebileceği bir yönetim paneli hazırlayıp ön yüz yazılımını da yaparak müşterilerime teslim ediyorum.

Aşağıdaki videoda yönetim paneli yazılımının kullanıldığı örnek kullanımı izleyebilirsiniz. Bu sadece örnek bir proje olup yönetim paneli yazılımında müşterilerime daha farklı türlerdeki içerik ve veri yönetimini yapabilecekleri şekilde yönetim alanları mevcuttur ve her projeye göre özel olarak ayarlanmaktadır.

Eğer siz de web sitesi projeniz için yönetim paneli sahibi olmak ve statik web sitesinizi yönetim panelli dinamik bir web sitesi haline getirmek yada beğendiğiniz bir tema ile yeni bir web sitesi sahibi olmak yada sitenizi yenilemek isterseniz yandaki iletişim formu ile bana ulaşabilir ve teklif alabilirsiniz.


Website admin panel

12 Nisan 2009

Mysql root kullanıcı yetkilerinin kaybedilmesi durumuna çözüm

Geçenlerde linux makinamda mysql ayarlarında değişiklik yaparken nasıl olduysa root yetkilerini kaybettim ve bu yüzden tekrar bağlanamadım ancak daha sonra bulduğum basit bir çözümle sorunu hallettim ve aynı sorunu yaşayanlar için burada paylaşmak istiyorum. Mysql sunucusu kullanıcıların yetkilerini yine sistemdeki bir veritabanından alır ve eğer bir kez tüm sorgu yetkilerini kaybederseniz bu tabloya erişme yetkiniz olmadığı için yetkileri tekrar veremezsiniz. Ancak mysql sunucu ayarlarında değişiklik yaparak bunu halletmek kolaydır. Bunun için önce /var/lib/mysql/ dizininde (en azından benim makinamda bu dizin) my.cnf dosyasını oluşturun ve şu satırları ekleyin:
[html]
[mysqld]
skip-grant-tables
[/html]
Daha sonra mysql sunucusunu tekrar başlatın. Bunun için şu komutu kullanabilirsiniz:
[html]
/etc/init.d/mysql restart
[/html]
Mysql sunucusu tekrar başladıktan sonra artık sisteme bağlı bütün kullanıcılar yetki sınırlaması olmadan bütün sorguları gerçekleştirebilirler. Eğer kullandığınız sunucu yayına açık bir sunucu değilse herhangi bir sorun olmaz ama kullanımda olan bir web sunucusundan bahsediyorsak çok büyük bir güvenlik riski oluşturur ve bir an önce root kullanıcıya bütün yetkileri verip sunucuyu eski haline getirmeniz gerekir. Bunun için yetkilerinizi tekrar elde ettikten sonra (bunu komut isteminden yada bir mysql gui programı kullanarak yapabilirsiniz) oluşturduğumuz my.cnf dosyasını silip mysql sunucusunu tekrar başlatmalısınız. Bunun için yukarıdaki komutu tekrar girmeniz yeterli. Bundan sonra mysql sunucunuzun ve root kullanıcınızın sorunsuz çalışıyor olması gerekir.

23 Ekim 2008

PhpMyAdmin Türkçe karakter sorunu

PhpMyadmin kullananlar genelde veri aktarımı yaparken (ör: başka bir sunucudan veritabanı alırken) Türkçe karakter sorunundan şikayetçidirler. Aynı sorun yakın zamanda benim de başıma gelmişti ve biraz denemeden sonra bir çözüm buldum. Phpmyadmin ile aktarmak istediğim veritabanı utf8 olarak kodlanmıştı ve bunu başka bir sunucuya kopyalamam gerekiyordu. İçeri aktar bölümünde bazı denemeler yaptım ancak birçok karakter setini denesem de değişik biçimlerde bozulmuş olan Türkçe karakterler elde ettim. En sonunda aklıma binary seçeneği geldi ve bu işe yaradı. Meğer phpmyadmin bu aktarma işlemine başlamadan önce seçilen karakter setine göre bir set names sorgusu çalıştırıyormuş. Bu yüzden kaynak veritabanı utf8 olduğunda listeden de utf8 seçtiğimde gereksiz bir dönüşüm yapmaya çalışıp Türkçe karakterleri bozuyormuş. Başka bir karakter seti seçtiğimde ise verinin gösterildiği sitenin kodlaması farklı olduğu için bozuk karakterler elde ediyordum. Sonuç olarak eğer PhpMyadmin ile içeri aktarma işlemi yapacaksanız ve kaynak veritabanının kodlaması yeni sunucuda kullanmak istediğiniz kodlamayla aynı ise karakter seti olarak binary seçin. Yalnızca farklı bir karakter setine dönüşüm yapmak istiyorsanız elde etmek istediğiniz karakter setini seçin.

19 Ağustos 2008

Php 'de Mysql kullanımı

Php gibi sunucu taraflı bir dil kullanılan sitelerin çoğu veri depolamak için bir veritabanı sistemi kullanır. Şu an kullanımda olan çeşitli veritabanı sunucuları arasında php ile birlikte en sık kullanılanı MySQL dir. Bu yazıda php kodları ile nasıl mysql sunucusuna bağlanıp sorgu işlemleri gerçekleştireceğinizi ilgili işlevleri açıklayarak örneklerle anlatmaya çalışacağım. Mysql ile ilgili ayrıntılı bilgiye MySQL in resmi sitesi olan www.mysql.com 'dan ulaşabilirsiniz. Ayrıca php.net de bu konuda açıklayıcı bilgi veren ve ilgili php işlevlerini liste halinde görebileceğiniz http://tr2.php.net/mysql adresini kaynak olarak kullanabilirsiniz.

Php ile mysql işlemleri gerçekleştirebilmemiz için ilk önce mysql sunucusuna bağlanmamız gerekir. Bunun için mysql_connect işlevini kullanırız:



$link = mysql_connect($server, $username, $password);

Bu ifadedeki parametrelerimiz sırasıyla sunucu adresi, veritabanı kullanıcı adı ve şifremizdir. mysql_connect işlevi elde edilen bağlantıya ait bir kaynak döner ancak çoğu zaman bunu kullanmaya ihtiyaç duymayız. Ancak aynı kod içinde birden fazla veritabanına eşzamanlı olarak bağlantı sağlamak istiyorsak varsayılan olarak en son yapılan bağlantı kullanıldığı için bunun haricindeki bağlantılarla ilgili sorgulamalarda ilgili kaynak değişkenini kullanırız. Çoğu zaman böyle bir durumla karşılaşmazsınız. Bağlantının başarısız olması durumunda dönüş değeri FALSE olur.

Bağlantı sağlandıktan sonra ilk yapmamız gereken veritabanı seçimi yapmaktır. Bunun için mysql_select_db işlevini kullanırız.



bool mysql_select_db ( string $database_name [, resource $link_identifier ] )


Zorunlu olan tek parametre veritabanı adıdır. İkinci parametre ise kullanmak istediğimiz bağlantıya ait kaynak bağlantı değişkenidir. Bu işlev de başarılı olma durumunda TRUE , hata durumunda FALSE değerini döner.

Veritabanı seçimi de başarıyla tamamlandığında artık sorgulama yapabiliriz. Bunun için ise mysql_query işlevi kullanılır.



resource mysql_query ( string $query [, resource $link_identifier ] )

Bu işlevi bir örnekle açıklayalım:


$sonuc = mysql_query("SELECT * FROM `uyeler` WHERE `id`=12 ");

Bu ifadeyle uyeler tablosunda id değeri 12 olan kaydı elde etmek üzere sorgulama yapıyoruz. Birden fazla bağlantı açtığımız özel bir durum olmadığı sürece ikinci parametreyi kullanmaya ihtiyacımız olmayacak. Bu işlev ile sorgudan elde edilen sonucu bir değişkene kaydediyoruz. Bu sonuç değişkeni sorguyla elde ettiğimiz kayıtları toplu halde içerir ve bu kayıtları sırayla elde etmek için kayıt getirme işlevlerinden birini kullanırız. Bunlar mysql_ fetch_ row, mysql_ fetch_ assoc, mysql_ fetch_ array ve mysql_ fetch_ object işlevleridir. Bu işlevlerin herbiri sonuç verimizin içinden bir kayıt satır çeker.

Elde etmek istediğimiz satırı
mysql_fetch_row işleviyle sayısal indisli bir dizi olarak,
mysql_fetch_assoc işleviyle tablodaki sütun adlarıyla ilişkili bir dizi olarak,
mysql_fetch_array işleviyle ister sayısal, ister ilişkisel, ister her iki türde indisli bir dizi olarak,
mysql_fetch_object işleviyle ise sütun adlarında değişkenlere sahip bir nesne olarak
elde ederiz.

mysql_fetch_assoc işlevi ile bir örnek gösterelim:




$satir = mysql_fetch_assoc($sonuc);
$kullanici_adi = $satir['kullanici_adi'];
...

Bu şekilde elde ettiğimiz satırın sütunlarına erişebiliriz. mysql_fetch_object işlevini kullanmış olsaydık kullanıcı adını

$kullanici_adi = $satir->kullanici_adi ;

şeklinde bir nesne öğesi olarak elde edecektik. Birden fazla kayıt elde etmek için ise aşağıdaki gibi bir döngü kullanabiliriz:


while($satir = mysql_fetch_assoc($sonuc) ){
echo 'Kullanıcı adı: '.$satir['kullanici_adi'];
}

Sorgu sonucuna ait bütün satırlar bittiğinde mysql_fetch_assoc (yada diğer işlevlerden biri) FALSE döneceğinden döngü sona erecektir. Bu şekilde elde ettiğimiz verileri istediğimiz şekilde kullanabiliriz.

Sorgu sonucuna ait veriyi serbest bırakmak için mysql_ free_ result işlevini kullanabilirsiniz. Ama bunun yerine aynı sonuç değişkenini başka sorgularda da kullanabilirsiniz.

Bağlantıyı bitirmek istediğinizde mysql_ close işlevini kullanabilirsiniz. Bu genelde pek kullanılmaz çünkü kodun çalışması sona erdiğinde bağlantı zaten kesilecektir.

Kripto paralar hakkında

Kripto paralar, merkezi olmayan, şifrelenmiş ve dağıtılmış bir veritabanı olan blok zinciri teknolojisi kullanılarak oluşturulan dijital par...