İçeriğe atla

Mysql Master – Slave Replication Yapımı

Mysql Master – Slave Replication Yapımı

Bu Dökümanda kullanılacak sunucu ip adresleri:

Ana (Master) Database : 12.34.56.789
İkinci (Slave) Database : 12.23.34.456

Kurulum:
Bu işlem eğer mysql server ve client bulunmuyorsa işlem yapmanız gerekmektedir.

sudo apt-get install mysql-server mysql-client

Adım 1: Ana Databasenini yapılandırma

Ana sunucuda mysql yapılandırma dosyasını açın.

sudo nano /etc/mysql/my.cnf

İp adresi değişimi yapmamaız gerekiyor.

bulun:

bind-address            = 127.0.0.1

Değiştirin:

bind-address            = 12.34.56.789 

(Sunucu ip adresinizi yazacaksınız)

Sonrasında sunucu numaralarınızı yazmanız gereklidir. 1. master olana 1 verelim.

server-id               = 1

başında açıklama satırını olup olmadıgına dikkat ediniz.

Aşagıdaki kodu aktifleştirin. Başındaki yorum satırını kaldırınız. Slave database baglantı loglarını tutacak.

log_bin                 = /var/log/mysql/mysql-bin.log

Bundan sonraki aşamaada hangi veritabanını replica yapacagınızı belirtiyoruz.

binlog_do_db            = yeniveritabani

Sonrasında mysql resetleyin.

sudo service mysql restart

Mysql e root yetkisi ile erişim yapın.

mysql -u root -p

Slave makine için bilgilerini yazmanız gerekmektedir. Kendinize göre bilgileri doldurun.

GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%' IDENTIFIED BY 'password';

sonrasında

FLUSH PRIVILEGES;

kodunu yazınız.

Sonrasında yeni bir ssh penceresi acıp veritabanına baglanın ve aşagıdaki kod ile o veritabanını kullanmaya başlayın.

USE newdatabase;

Sonrasında okumayı engellemek için kilitleyin.

FLUSH TABLES WITH READ LOCK;

hemen sonrasında

SHOW MASTER STATUS;

Aşagıdakine benzer bir kod alacaksınız.

mysql> SHOW MASTER STATUS;
+——————+———-+————–+——————+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+——————+———-+————–+——————+
| mysql-bin.000001 | 107 | newdatabase | |
+——————+———-+————–+——————+
1 row in set (0.00 sec)

Yukarıdaki bilgileri kayıt edin. İlerleyen süreçte gerekecek.

Eğer bu pencerede işlem yaparseniz okuma kilidini kaldıracaktır. Bu yüzden yeni bir pencerede ssh baglanın.

Eğer kilid kapalı ise aşagıdaki kod ile mysql yedeginizi alın.

mysqldump -u root -p --opt newdatabase > newdatabase.sql

Şimdi bir önceki ssh pencerenizi acın ve veritabanının okuma iznini acın.

UNLOCK TABLES;
EXIT;

diyerek çıkın.

Slave serverinize gecin ve veri tabanınızı yükleyin.

mysql -u root -p newdatabase < /path/to/newdatabase.sql

Sonrasında my.cnf den 2. database sunucusu oldugunu belirtelim.

sudo nano /etc/mysql/my.cnf

bir öncekinde server-id degerini 1 yapmıştık bunu 2 yapalım. Lütfen sıra numaralarını dikkatli yapın.

server-id               = 2

Aşagıdaki kodları bulup düzenleyin.

relay-log               = /var/log/mysql/mysql-relay-bin.log
log_bin                 = /var/log/mysql/mysql-bin.log
binlog_do_db            = newdatabase

kayıt ettikten sonra mysql serverinizi resetleyin

sudo service mysql restart

Mysqle giriş yapıp aşagıdaki kodları yazın. Unutmadan ip adreslerini kendinize göre düzenleyin.

CHANGE MASTER TO MASTER_HOST='12.34.56.789',MASTER_USER='slave_user', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=  107;

Üstteki kod ile bu sunucun master sunucunun slave sunucusu oldugunu belirtmiş oluruz. Sonrasında slave server başlatmamız gerekiyor.

START SLAVE;

Durum Kontrol için:

SHOW SLAVE STATUS\G

Eğer sıkıntılı bir durum olursa.

SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; SLAVE START; 

kodunu çalıştırabilirsiniz.

wkhtmltopdf Kurulumu

Öncelikle Sitesine Girelim

https://wkhtmltopdf.org/downloads.html

Buradan en son versiyonu indirelim.

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

tar –xz –xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

yada

unxz wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Kurmanız gereken kütüphaneler:
yum install -y libpng
yum install -y libjpeg
yum install -y openssl
yum install -y icu
yum install -y libX11
yum install -y libXext
yum install -y libXrender
yum install -y xorg-x11-fonts-Type1
yum install -y xorg-x11-fonts-75dpi

bine atalım
mv wkhtmltox/bin/* /usr/local/bin/

Kurulum dosyalarını silelim

rm -rf wkhtmltox
rm -f wkhtmltox-0.12.4_linux-generic-amd64.tar.xz

Şimdi Çalışır.
Eğer cpanel kullanıyorsanız ve güvenlik disable_functions kullanıyorsanız proc_open kapattıysanız açmanız gerekmektedir.

Symfony Manytomany kullanımı

Symfony Manytomany kullanımı

1. entity e yazacagımız:

    /**
     * @ORM\ManyToMany(targetEntity="RtStokKategori", mappedBy="RtMenu")
     */
    public $RtStokKategori;

2. entity e yazacagımız:

    /**
     * @ORM\ManyToMany(targetEntity="RtMenu", inversedBy="RtStokKategori")
     * @ORM\JoinTable(name="rt_menu_ve_kategori")
     */
    public $RtMenu;

Veritabanını Güncelliyelim

php bin/console doctrine:schema:update --force

Symfony FosUserBundle Kullanımı

Symfony FosUserBundle Kullanımı

Konsolda yapılan işlemlerdir.

Kullanıcı adı ve şifre tanımlama:

php bin/console fos:user:create kullanici kullanici@tasarimrehberi.net sifre

Süper Admin Yapma:
php bin/console fos:user:create kullanici –super-admin[/php]

Kullanıcı Pasifleştirme:

php bin/console fos:user:create kullanici --inactive

Kullanıcı Aktifleştirme:

php bin/console fos:user:activate kullanici

Kullanıcıya admin hakkı tanıma:

php bin/console fos:user:promote kullanici ROLE_ADMIN

Kullanıcıya süper admin tanıma:

php bin/console fos:user:promote kullanici --super

Şifre Değiştirme:

php bin/console fos:user:change-password kullanici sifre