"Enter"a basıp içeriğe geçin

Windows’ta MYSQL Veritabanı Sunucusu Kurulumu

Windows’ta Bir MYSQL sunucusu kurmak için üç seçeneğimiz mevcut.

Birincisi Xampp, Wampp vs. gibi hazır kurulum paketleri vasıtasıyla hızlı kurulum yapmak. Bu paket içinde Apache Web sunucu, Tomcat, PHP, Mercury Mail sunucusu vs. de geliyor. MySQL sunucu kurmanın En kolay yolu bu sanırım.

İkincisi resmi indirme adresinden MSI formatındaki kurulum dosyasını indirerek yapılan kurulumudur.

Ancak biz bu yazıda bunların hiçbirine değinmeyeceğiz.

Üçüncü kurulum metodu ise MySQL’in resmi indirme adresindeki “Windows (x86, 64-bit), ZIP Archive” olan dosyayı listenin sağ tarafında bulunan Download butonuna tıklayıp indirerek manuel kurulum yapmak. Bunun için indirdiğimiz dosyayı kurulum yapacağımız bilgisayarda herhangi bir klasöre zipten çıkarıp buradan devam edeceğiz. Ben klasör olarak E sürücümdeki “E:\Developer\” yolunu seçtim. Zipten çıkan dosyalar “mysql-8.0.26-winx64” adlı klasöre çıktı.

Zipten çıkardığımız klasör altına (E:\Developer\mysql-8.0.26-winx64) “data” adında bir klasör oluşturalım. MySQL sunucusu tüm veri dosyalarını (datafile) burada saklayacak. Bu yolu daha sonra konfigürasyon dosyasında belirteceğiz. Burası herhangi harici bir depolama alanı olarak da verilebilir.

“mysql-8.0.26-winx64” klasörü altında bulunan bin klasörü içinde MySQL sunucusunun tüm yönetimsel araçları bulunmakta. MySQL sunucusunu yöneteceğimiz ve başlatacağımız tüm işlemleri buradaki programlar vasıtasıyla yapacağız.

MySQL’in bu zipten kurulumunda konfigürasyon dosyası (my.ini veya my.cnf olarak bilinen) gelmiyor. Bu yüzden “bin” klasörü altına bir tane “my.ini” dosyası oluşturup içine

[client]
port=3306
socket=E:/Developer/mysql-8.0.26-winx64/temp/mysql.sock

[mysqld]
port=3306
max_allowed_packet=16M
socket=E:/Developer/mysql-8.0.26-winx64/temp/mysql.sock
basedir="E:/Developer/mysql-8.0.26-winx64"
datadir="E:/Developer/mysql-8.0.26-winx64/data"
tmpdir="E:/Developer/mysql-8.0.26-winx64/temp"
default-storage-engine=INNODB
sql-mode=""
max_connections=1000
tmp_table_size=128M
thread_cache_size=256
myisam_max_sort_file_size=100G
myisam_sort_buffer_size=256M
key_buffer_size=512M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=2M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=6M
innodb_buffer_pool_size=550M
innodb_log_file_size=110M
innodb_thread_concurrency=10
innodb_file_per_table

Satırlarını yazdım ve bu dosyayı kaydedip kapattım.

Burada basedir ve datadir girdilerine dikkat. MySQL bütün dosya işlemlerini basedir girdisini referans alarak yapar. datadir girdisi ise datafile’ların tutulacağı yeri gösterir. Buraya vereceğimiz yol ile MySQL’in veritabanı ve tablolara ilişkin veri dosyalarını nerede tutacağınız göstermiş oluyoruz.

Bin klasörü altında iken klasör yolunu kopyaladım ve Administrator yetkisi ile bir tane konsol penceresi açtım. cd “E:\Developer\mysql-8.0.26-winx64\bin” komutu ile konsolda bin klasörüne geçtim.

Konsoldayken

.\mysqld.exe --initialize --console

Komutunu vererek MySQL’in veritabanı başlangıç kurulumunu yaptım. MySQL örneğini çalıştırmadan önce bu kurulumun mutlaka yapılması gerekmektedir.

Burada –console parametresi ile işlemin çıktısını konsola vermek hata ayıklama için iyi olacaktır. Aksi takdirde MySQL’in durumu log dosyalarından da takip edilebilir.
Kurulum işlemi bittikten sonra konsolun en son satırına “A temporary password is generated for [email protected]: #iDkhhxbq1ml” şeklinde bir bilgi mesajı ile kurduğunuz MySQL sunucusunun root parolasını yazar.

Veritabanı kurulumunu kendi belirleyeceğiniz bir parola ile gerçekleştirmek isterseniz
belirlediğiniz bir klasör altına (ben E:\Developer\mysql-8.0.26-winx64\bin klasörü altına koydum) bir tane default.sql (bu adı ben verdim siz adını hede.txt de koyabilirsiniz) adında bir SQL komut dosyası oluşturun ve içine

ALTER USER 'root'@'localhost' IDENTIFIED BY 'Parolayı buraya yazın';

Satırını ekleyin ve kaydedip kapatın. Ardından komut satırında

.\mysqld.exe --initialize --console --init-file="E:\Developer\mysql-8.0.26-winx64\bin\default.sql"

Komutunu verin. Böylece kurduğunuz veritabanının root parolası default.sql dosyası içinde belirlediğiniz parola olacaktır.

Artık veritabanı sunucusunu çalıştırabiliriz. Bunun için yine konsoldan

.\mysqld.exe --defaults-file="E:\Developer\mysql-8.0.26-winx64\bin\my.ini" --console

Peki ya MySQL root parolasını unutursak? Bunun için de öncelikle çalışan MySQL servisini durdurduktan sonra komut satırında iken (eğer yoksa öncelikle yukarıdaki gibi bir sql komut dosyası oluşturulmalı)

.\mysqld.exe --init-file="E:\Developer\mysql-8.0.26-winx64\bin\default.sql"

Komutunu yazın. Bu komutla artık MySQL root parolasını –init-file parametresi ile verdiğimiz SQL komut dosyası içinde bulunan parola olarak belirledik. Bu prosesi durdurup MySQL’i yukarıda verdiğimiz –defaults-file parametresi ile tekrar başlattığımızda yeni parola ile giriş yapabiliriz.

MySQL’i konsoldan başlatmak için bir shell scripti kullanabiliriz. Bunun için “E:\Developer\mysql-8.0.26-winx64” klasörü altına “mysql_start.bat” adında bir dosya oluşturun ve içine şunları yazın

@echo off
cd /D %~dp0
echo MySQL bin\my.ini config dosyasi ile basliyor...

bin\mysqld.exe --defaults-file=bin\my.ini --standalone --console

if errorlevel 1 goto error
goto finish

:error
echo.
echo Bir hata nedeniyle MySQL baslatilamadi.
pause

:finish

ardından dosyayı kaydedin ve kapatın.

Artık MySQL sunucumuzu konsoldan

.\mysql_start.bat

komutunu vererek kolayca çalıştırabiliriz.

MySQL’i konsoldan durdurmak için bir shell scripti kullanabiliriz. Bunun için “E:\Developer\mysql-8.0.26-winx64” klasörü altına “mysql_stop.bat” adlı bir dosya oluşturun ve içine şunları yazın

@echo off
cd /D %~dp0
echo Mysql kapatiliyor...

SetLocal EnableDelayedExpansion
set proc="mysqld.exe"
set "PID_LIST="

for /f "tokens=2" %%V in ('tasklist.exe ^| findstr /i "%proc%" 2^>NUL') do @set "PID_LIST=!PID_LIST! /PID %%V"

if defined PID_LIST (
  taskkill.exe /F %PID_LIST%
) else (
  echo %proc% MySQL sunucu prosesi calismiyor.
)

SetLocal DisableDelayedExpansion

if not exist data\%computername%.pid GOTO exit
echo %computername%.pid dosyasi silindi ...
del data\%computername%.pid

:exit

Ardından dosyayı kaydedin ve kapatın. Bu bat dosyasını çalıştırabilmek için Administrator yetkisi gereklidir.

Artık çalışan MySQL sunucumuzu konsoldan

.\mysql_stop.bat

komutunu vererek durdurabiliriz.

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir