
Centos sunucularda mysql kurulumu ‘nu anlattığım bu güncel yazımda, eskisi kadar kolay olmayan mysql kurulumunu göstereceğim.
Uzun bir aradan sonra mariaDB yerine mysql kullanmaya karar verdim ve bunun için yum ile Mysql kurulumu denedim ancak her defasında mariadb yi kurmaya çalışıyordu. Küçük bir araştırmadan sonra mysql ‘i en sağlam ve temiz kurmak için bu yazıyı hazırlama ihtiyacı doğdu.
Mariadb her ne kadar ücretsiz ve yum kütüphanesinde mysql yerine geçmiş olsa da, mysql hala dünyanın en popüler veritabanı yönetimi uygulamasıdır. Bana göre mariaDB ye göre mysql çok daha üstün ve etkili bir veritabanı yönetimi uygulaması. Zaten sadece kurulumda 2 GB lik bir dosya yı indirip kurmaya çalıştığında ne kadar ciddi bir uygulama olduğunu anlayacaksınız :)
Bu konuda iki kurulum anlatacağım. İlk’i hazır betik dosyasıyla çok kolay bir şekilde yönetilebilir ve hızlı işlemler için hazırladım. Diğer anlatımda manuel, yani elle kodları tek tek yazarak yapacağınız anlatım olacak. İlk olarak Hızlı ve kolay yöntemi anlatalım.
HIZLI mysql kurulumu (Sadece tek kod çalıştırın, işlemler başlasın)
Hızlı kurulumda ben daha önce basit bir betik dosyası hazırladım. Bu dosyada gerekli kurulum komutlar yer alıyor. Tek yapacağınız aşağıdaki kodu çalıştırmak ve ekranda sizden istenen işlemleri onaylayıp enter yapmak: Kodu çalıştırmadan önce, altındaki kısmı okuyun önce.
wget https://makaleci.com/dosyalar/sh/kuaza_mysql.sh; sh kuaza_mysql.sh mysqlkur mysql80-community-release-el7-3.noarch.rpm
Yukarıdaki kodu çalıştırmadan önce komutun sonundaki şu kısma dikkat çekmek istiyorum = mysql80-community-release-el7-3.noarch.rpm
Bu kısmı en güncel dosya ismini öğrenerek değiştirmeniz gerekiyor. Buradan mysql yum deposu kısmına girelim ve aşağıdaki resimde yer alan kısmı kopyalayıp, yukarıdaki komutun sonundaki “mysql80-community-release-el7-3.noarch.rpm” yerine yapıştırıp o şekilde çalıştıralım.

Yukarıdaki uyarımı dikkate alıp kodu çalıştırdığınızda, mysql kurulum işlemleri başlamış olacak. Ekranı takip ederek sizden istediği sorulara yanıt vermeniz gerekiyor. Sonrasında kurulumu bitirmiş olacaksınız. Bu işlemlerin ardından, kolaylıkla yeni database oluşturabilir, bu database ye diğer sunuculardan erişim izni verebilirsiniz. Aşağıdaki ekstraları takip etmeniz yeterli.
Mysql yeni database oluşturma (hızlı)
Aşağıdaki komutu kullanarak yeni database oluşturabilir, bunu yaparken erişim yetkisi olarak herhangi bir ip yada sunucu ismini belirleyebilirsiniz.
- DB_ADI: Yeni database isminiz olacak.
- KULLANICI_ADI: Database ye bağlanmak için yetki vereceğiniz kullanıcı adı olacak.
- KULLANICI_SIFRESI: Kullanıcı için şifre (zor bir şifre girmeniz gerekli, yoksa kabul etmiyor. karışık ve zorluk derecesi yüksek olsun), örnek: YkV_rP21*fgao9
- SUNUCU_IP_YADA_DOMAIN: Hangi İP yada domainden bu veritabanına erişim izni vermek istiyorsanız onu yazın. Localhost da çalışacaksanız “localhost” yazmanız yeterli olacaktır. Diğer seçenekler için İP yada bağlanacak sunucunun host ismini belirtin.
sh kuaza_mysql.sh databaseolustur DB_ADI KULLANICI_ADI KULLANICI_SIFRESI SUNUCU_IP_YADA_DOMAIN
Yukarıdaki kodu tabi ki öncelikle kendinize göre düzenleyerek çalıştırmanız gerekli, örnek kullanım: Kullanıcı şifresini oluştururken zor bir şifre belirleyin, aksi durumda hata verecektir ve kabul etmeyecektir. Örnek şifre: nFJ4o*KKmu_tEe
sh kuaza_mysql.sh databaseolustur dbyeni useryeni nFJ4o*KKmu_tEe localhost
Veritabanı için farklı sunuculardan girişlere yetkisi verme
Eğer uzak ve localhost da olmayan bir yerden mysql veritabanınıza erişmeye çalışıyorsanız yetkiniz yok hatası alırsınız. Bu sebeple bağlanmaya çalıştığınız sunucunun IP adresini ve sunucu domain isminide yetkili olarak atamanız gerekiyor. Bunun içinde aşağıdaki kod işinizi görecektir:
- DB_ADI: Yetki verilecek database isminiz olacak.
- KULLANICI_ADI: Database ye bağlanmak için yetki vereceğiniz kullanıcı adı olacak.
- KULLANICI_SIFRESI: Kullanıcı için daha önce oluşturduğunuz şifre
- SUNUCU_IP_YADA_DOMAIN: Hangi İP yada domainden bu veritabanına erişim izni vermek istiyorsanız onu yazın. Localhost da çalışacaksanız “localhost” yazmanız yeterli olacaktır. Diğer seçenekler için İP yada bağlanacak sunucunun host ismini belirtin.
sh kuaza_mysql.sh ipizinver dbyeni useryeni nFJ4o*KKmu_tEe 94.23.167.232
Hata almadıysanız bu işlemide kolaylıkla geçtiniz demektir.
Mysql kurulumu (Manuel, uzun ve detaylı anlatım)
Öncelikle ssh ile centos yüklü sunucumuza Putty aracılığı ile bağlanıyoruz. Sonrasında ilk yapacağımız yum kütüphanesini güncellemek, aşağıdaki komutu çalıştırın:
yum update
Sonrasında sunucuda wget uygulaması kurulu değil ise aşağıdaki komut ile onuda kuruyoruz.
yum -y install wget
Sıra mysql yi kurmamız için bize gerekecek depoyu indirip tanımlamaya geldi. Burdaki mysql yum deposu sayfasına giriyoruz. İhtiyacımız olan kısım, şuan ki konuda centos için anlatım yaptığım için aşağıdaki resimde işaretlediğim alanda olacaktır.

Açılan sayfada aşağıdaki ekranda yer alan işaretli yere mausun sağ’ı ile tıklayarak, bağlantıyı kopyalayın. Eğer üye girişi yaptıysanız, aşağıdakini yapmanıza gerek yok, yukarıdaki resimde işaretli yere sağ tık yaparak, bağlantıyı kopyala demeniz yeterli.

Bu işlemden sonra kopyaladığımız dosyayı, sunucumuza wget parametresi ile indirmemiz gerekiyor. ssh komut paneline girerek wget yazıp boşluk bırakın ve kopyaladığımız dosya urlsini yapıştırıyoruz. (putty de sağ tık yaptığınızda otomatik link ekrana yapıştırılıyor) ve komutu çalıştırıyoruz. Örnek kod aşağıda veriyorum, suanki en güncel versiyon linki (mysql80-community-release-el7-3.noarch.rpm): https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
Bu işlemden sonra dosya sunucuya inmiş olması lazım, şimdi aşağıdaki kodu çalıştırarak mysql yi yum reposuna dahil ediyoruz. Siz yukarıda anlattığım şekilde indirdiğiniz dosyanın ismine göre aşağıdaki kodu düzenleyerek çalıştırın. Siz bu dokümanı okurken mysql versiyonu güncellenmiş olabilir, o yüzden aşağıdaki komutta ki dosya ismini, indirdiğiniz dosya ismi ilde değiştirerek çalıştırın.
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
Bu işlemden sonrada yum kütüphanesini tekrar güncelleyelim:
yum update
Yukarıdaki kodu çalıştırdığınızda sizden onay isteyecek belli şeyler için, y karakterini girip enter diyerek kabul edin ve güncelleme işlemini bitirin.
Ve sonunda mysql kurma kısmına geldik. Aşağıdaki yum komutunu çalıştırarak mysql ‘i sunucumuza kuruyoruz:
yum -y install mysql-server
Bu işlemin ardından mysql server sunucumuza kurulacak, biraz uzun sürebilir çünkü kurulum için gerekli olan dosyalar 2Gb’a yakın. Sonrasında aşağıdaki komut ile mysql’i çalıştıralım:
systemctl start mysqld
Buraya kadar hatasız ilerlediyseniz mysql sunucusunu kurduk demektir. Aşağıdaki komutu çalıştırarak mysql nin standart gelen bazı güvenlik riski oluşturacak ayarlarını kaldırıyoruz:
mysql_secure_installation
Ben yeni kurulumdan sonra mysql ye bağlanırken şifre de sorun yaşadım. Normalde sunucunun root şifresini mysql’ e atıyor ancak atamadığı durumlarda aşağıdaki komutu çalıştırarak, mysql nin geçici şifre oluşturup oluşturmadığına bakın:
grep 'temporary password' /var/log/mysqld.log

Eğer komutu çalıştırdıktan sonra bir sonuç çıkarsa (örnek yukarıdaki resimdeki gibi), ordaki şifreyi alarak mysql için yukarıda belirttiğim başlangıç için güvenlik ayarlarını yapmak için kodu tekrar çalıştırın:
mysql_secure_installation
Komutu çalıştırdıktan sonra bize sırayla root şifresini değiştirmek isteyip istemediğimizi soracak. y diyerek onaylayıp yeni mysql şifremizi iki kere girerek onaylayın ve sonraki ayarlarıda hepsine y diyerek geçerek bu aşamayı bitiriyoruz.
Mysql server ‘i dış IP yada server lara açmak!
Yeni database ve kullanıcı oluşturup bağlamadan önce yapmamız gereken bir ayar var. Bu ayarı dışardaki IP lerden yani sunuculardan bu mysql server ‘a bağlanılmasını istediğinizde açmanız gereken bir ayardır. Eğer localhost da bu mysql yi kullanacaksanız aşağıdaki ayarları yapmanıza gerek yoktur. Ben farklı sunuculardan oluşturacağım veritabanına bağlantı gerçekleştireceğim için bu ayarı açıyorum.
Aşağıdaki ayarları yeni database ve kullanıcı oluşturmadan önce yapmanız gerekiyor, eğer bu ayarı yapmadan kullanıcı ve database oluşturursanız o zaman uzak sunuculardan oluşturduğunuz veritabanına bağlantı sağlanamıyor malesef. Sonrasında ayarı açsanızda farketmiyor, yeniden kullanıcı ve database oluşturarak ip yada domain izni vermeniz gerekli.
Aşağıdaki komutu çalıştırarak mysql ayar dosyasını açıyoruz:
nano /etc/my.cnf
Sonrasında aşağıdaki satırı bulun ve basındaki # karakterini silin, bu o satırdaki ayarın aktif olmasını sağlayacak.
# default-authentication-plugin
Sonrasında ayarı kaydetmek için ctrl+x diyoruz, sonrasında y yapıp enter diyoruz. Ve Mysql server’a aşağıdaki komut ile restart atıyoruz, bu ayarın aktif olmasını sağlayacak:
systemctl restart mysqld
Buraya kadar herşey iyi gitti, şimdi yeni database ve kullanıcı oluşturarak birbirine bağlayalım.
Mysql Yeni veritabanı ve Kullanıcı oluşturma
Öncelikle mysql uygulamasına aşağıdaki komutu çalıştırarak giriyoruz:
mysql -u root -p
Mysql şifrenizi girmenizi isteyecek, sonrasında şifreyi girip enter yaparak giriş yapın. Aşağıdaki kodları her satırı tek tek çalıştırarak yeni database i ve kullanıcıyı oluşturun. Komutlardaki belirtilen yerleri kendinize göre düzenlemeyi unutmayın:
CREATE DATABASE DB_ADI;
CREATE USER 'KULLANICI_ADI'@'SUNUCU_IP_YADA_DOMAIN' IDENTIFIED BY 'KULLANICI_SIFRESI';
GRANT ALL PRIVILEGES ON DB_ADI.* TO 'KULLANICI_ADI'@'SUNUCU_IP_YADA_DOMAIN' WITH GRANT OPTION;
flush privileges;
- DB_ADI: Yeni database isminiz olacak.
- KULLANICI_ADI: Database ye bağlanmak için yetki vereceğiniz kullanıcı adı olacak.
- KULLANICI_SIFRESI: Kullanıcı için şifre (zor bir şifre girmeniz gerekli, yoksa kabul etmiyor. karışık ve zorluk derecesi yüksek olsun), örnek: YkV_rP21*fgao9
- SUNUCU_IP_YADA_DOMAIN: Hangi İP yada domainden bu veritabanına erişim izni vermek istiyorsanız onu yazın. Localhost da çalışacaksanız “localhost” yazmanız yeterli olacaktır. Diğer seçenekler için İP yada bağlanacak sunucunun host ismini belirtin.
Mysql bağlantısını test etme (php ve pdo ile)
Aşağıdaki php ve pdo yapısını kullanarak mysql sunucusuna bağlantınızın başarılı olup olmadığını test edebilirsiniz arkadaşlar.
/*
Kuaza: Bu baglanti birimi sayesinde php bulunan sunucunuzdan, yapacaginiz mysql baglantilarinin ne sonuc dondurecegine bakabilirsiniz.
Baglanti hata verirse donen mysql hata kodunu gorursunuz, basarili olursa zaten anlayacaginiz bir yazi cikacak.
*/
error_reporting(E_ALL); ini_set("display_errors", 1);
$host = "SUNUCU_IP_YADA_DOMAIN";
$dbismi = "DB_ADI"; // Database ismi
$dbkullanici = "KULLANICI_ADI"; // Database kullanici adi
$dbsifre = "KULLANICI_SIFRESI"; // Kullanici sifresi
try {
$dbpdo = new PDO("mysql:host={$host};dbname={$dbismi}", $dbkullanici, $dbsifre, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$dbpdo->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING );
echo "Tebrikler, mysql sunucusuna sorunsuz baglanti sagladiniz.";
} catch (PDOException $e) {
echo 'Baglanti hatasi: '. $e->getMessage();
}
Centos 7 sunucularda Mysql kurulumu ‘nu anlattığımız bu konuda umarım aradığınız bulabilmişsinizdir.
phpMyAdmin kurulabilir mi bu sisteme?
Eğer mysql kurduğunuz sunucuya php kuracaksanız evet, phpmyadmin dosyalarını indirip site dizininize atıp adres satırından çalıştırırsanız veritabanı bilgilerini girerek ona erişebilirsiniz.
Ancak eğer mysql sunucusuna php kurmayacaksanız ve başka bir sunucudan bağlantı yapacaksanız, o sunucuyada php myadmin dosyalarını yükleyip config dosyasında mysql sunucu ip sini tanımlayarak ordanda kolaylıkla erişim sağlayabilirsiniz.