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