MySQL, altı milyondan fazla sistemde yüklü bulunan veri tabanı yönetim sistemidir. Unix ve Windows platformları için ücretsiz dağıtılmakla birlikte ticari lisans kullanmak isteyenler için de ücretli bir lisans seçeneği de mevcuttur.
Bu yazımda size Mysql’in ücretsiz olan versiyonu yani Community Server kurulumunu anlatacağım. Kurulumu RHEL 8.5’te yaptım. Fakat tüm RHEL 8x ve türevleri için geçerlidir.
MySQL Dnf deposunu sisteminize eklemek için aşağıdaki komutu kullanın.
$ rpm -Uvh https://repo.mysql.com/mysql80-community-release-el8-3.noarch.rpm
Sisteminizde bulunan repolarda dahil edilen Mysql modülünü devre dışı bırakmak ve yukarıda eklediğimiz Mysql reposunu görünür kılmak için aşağıdaki komutu kullanın.
$ dnf module disable mysql
Mysql 8.0.28’i sisteme indirin ve servisi başlatıp kontrolünü sağlayın. Aradığımız cevap Active: active (running).
$ dnf install mysql-community-server
$ systemctl start mysqld
$ systemctl status mysqld
Kurulum tamamlandı.
Kurulum sırasında otomatik belirlenen süper kullanıcı parolası, hata günlüğü dosyasında oluşturulur ve saklanır. Görmek için aşağıdaki komutu kullanın.
$ grep 'temporary password' /var/log/mysqld.log
Oluşturulan şifre ile giriş yaparak root şifresini değiştirin ve süper kullanıcı hesabı için özel bir şifre belirleyin.
$ mysql -uroot -p
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ROOT_PASSWORD';
Yeni veritabanı oluşturmak için aşağıdaki komutu kullanabilirsiniz.
> create database DATABASE_NAME character set utf8mb4 collate utf8mb4_bin;
Yeni veritabanı kullanıcısı oluşturmak için aşağıdaki komutu kullanabilirsiniz.
> create user DATABASE_USER_NAME@localhost identified by 'DATABASE_USER_PASSWORD';
Bir veritabanı ile ilgili tüm izinleri, veritabanı kullanıcısına atamak için aşağıdaki komutu kullanabilirsiniz.
> grant all privileges on DATABASE_NAME.* to DATABASE_USER_NAME@localhost;
Veritabanı için gerekli tüm izinleri verdiğiniz kullanıcı ile ilgili, authentication method hatası alırsanız, düzeltmek için aşağıdaki adımları izleyin.
$ mysql -uroot -p
> ALTER USER 'DATABASE_USER_NAME'@'localhost' IDENTIFIED WITH mysql_native_password BY 'DATABASE_USER_PASSWORD';
> quit;
$ systemctl restart mysqld
Varsayılan olarak gelen Mysql dizinini değiştirmek (Opsiyonel)
Mysql’i durdurun ve kontrolünü sağlayın. Aradığımız cevap Active: inactive (dead)
$ systemctl stop mysqld
$ systemctl status mysqld
Database için kök dizinde yeni bir klasör oluşturun.
$ mkdir -p FOLDER_NAME/FOLDER_NAME/
Mysql’in varsayılan dizininin kontrolünü sağlıyoruz.
$ mysql -u root -p
> select @@datadir;
> quit;
Varsayılan dizindeki her şeyi, oluşturduğunuz yeni dizine aktarın.
$ rsync -av /var/lib/mysql FOLDER_NAME/FOLDER_NAME/
Eğer sisteminizde Rsync bulunmuyorsa aşağıdaki komutla kurulumunu gerçekleştirebilirsiniz.
$ dnf install rsync
Mysql’in varsayılan dizinini yedekleyin.
$ mv /var/lib/mysql /var/lib/mysql.bak
Mysql config dosyasını, yeni dizini belirtmek için düzenleyin.
$ vi /etc/my.cnf
ve aşağıdaki satırları bu dökümana ekleyin,
[mysqld]
datadir=/FOLDER_NAME/FOLDER_NAME/mysql
socket=/FOLDER_NAME/FOLDER_NAME/mysql/mysql.sock
[client]
port=3306
socket=/FOLDER_NAME/FOLDER_NAME/mysql/mysql.sock
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
Mysql’i çalıştırın ve durumunu kontrol edin. Aradığımız cevap Active: active (running)
$ systemctl start mysqld
$ systemctl status mysqld
Mysql’in yeni dizininin belirttiğininiz dizin, olduğunun kontrolünü sağlayın.
$ mysql -u root -p
> select @@datadir;
> quit;
Mysql repo dosyalarını kaldırmak için aşağıdaki adımları izleyin.
$ cd /etc/yum.repos.d/
$ ls
$ rm mysql-community.repo mysql-community-source.repo