Mainos / Advertisement:

MariaDB

Kohteesta Taisto
Versio hetkellä 4. kesäkuuta 2017 kello 07.34 – tehnyt Minh (keskustelu | muokkaukset) (→‎Debug)
Siirry navigaatioon Siirry hakuun

MariaDB on mysql tavoin tietokantapalvelinohjelmisto.

Asennus

Debian 7 Wheezy

Asennetaan python-software-properties ja lisätään avain.

sudo apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Asentaessa MariaDB 5 lisää repo:

add-apt-repository 'deb http://mirror.netinch.com/pub/mariadb/repo/5.5/debian wheezy main'

Asentaessa MariaDB 10 lisä repo:

add-apt-repository 'deb http://mirror.netinch.com/pub/mariadb/repo/10.1/debian wheezy main'

Asennetaan MariaDB 10

apt-get update
apt-get install mariadb-server

Debian 8 Jessie

Asennetaan software-properties-common paketti ja lisätään avain

apt-get install software-properties-common
apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db

Lisätään repo:

add-apt-repository 'deb [arch=amd64,i386] http://mirror.netinch.com/pub/mariadb/repo/10.1/debian jessie main'

Asennetaan MariaDB 10

apt-get update
apt-get install mariadb-server

Ubuntu 14.04 Trusty

Asennetaan python-software-properties ja lisätään avain.

sudo apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db


Asentaessa MariaDB 5 lisää repo:

sudo add-apt-repository 'deb http://mirror.netinch.com/pub/mariadb/repo/5.5/ubuntu trusty main'

Asentaessa MariaDB 10 aja komento:

sudo add-apt-repository 'deb http://mirror.netinch.com/pub/mariadb/repo/10.0/ubuntu trusty main'

Asenna MariaDB kun repot on lisätty:

sudo apt-get update
sudo apt-get install mariadb-server

Ubuntu 16.04

Lisää source.listiin MariaDB ja avain

sudo apt-get install software-properties-common
sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
sudo add-apt-repository 'deb [arch=amd64,i386,ppc64el] http://mirror.netinch.com/pub/mariadb/repo/10.1/ubuntu xenial main'

Päivitä repo listaus ja asenna mariadb

sudo apt update
sudo apt install mariadb-server

Konfigurointi

Salli etäyhteydet

Avaa konfigurointi tiedosto

 nano /etc/mysql/my.conf

Etsi tiedostosta rivi

 bind-address: 127.0.0.1

Ja lisää eteen risuaita #.

 #bind-address: 127.0.0.1

Tallenna tiedosto ja käynnistä palvelu uudelleen

 sudo service mysql restart

MariaDB Galera klusteri

Galera klusterin avulla saat tehtyä tietokantaklusterin. Tarvitset vähintään 3 palvelinta muodostaaksesi MariaDB-klusterin.

  • Asenna valmiiksi uusin versio MariaDB 10.1:stä kaikkiin palvelimille.
  • Asenna rsync kaikkiin palvelimiin
  • Määritä sama root salasana kaikkiin palvelimiin.

Node 1

 sudo nano /etc/mysql/conf.d/galera.cnf

Konfiguroi tähän tiedot clusterista. Boldattuna on kohdat jotka sinun pitää muuttaa. Huomaa:

  • wsrep_cluster_name pitää jokaisella palvelimella olla sama! Muuten tulee handshake virhettä.
  • wsrep_cluster_address kohdassa pitää olla kaikkien MariaDB palvelimien IP-osoite. Vähintään 3 palvelinta.
[mysqld]
binlog_format=ROW
default-storage-engine=innodb
innodb_autoinc_lock_mode=2
bind-address=0.0.0.0

# Galera Provider Configuration
wsrep_on=ON
wsrep_provider=/usr/lib/galera/libgalera_smm.so

# Galera Cluster Configuration
wsrep_cluster_name="'''test_cluster'''"
wsrep_cluster_address="gcomm://first_ip,second_ip,third_ip"

# Galera Synchronization Configuration
wsrep_sst_method=rsync

# Galera Node Configuration
wsrep_node_address="this_node_ip"
wsrep_node_name="this_node_name"

Node 2 ja 3 jne...

Konfiguroi samalla tavalla kuten ensimmäinen node paitsi että muistathan muuttaa Galera Node Configuration kohtaa vastaamaan palvelimen asetuksia.

# Galera Node Configuration
wsrep_node_address="'''this_node_ip'''"
wsrep_node_name="'''this_node_name'''"

Kopioi Debian/Ubuntu Node 2 ja 3:seen tietokanta käyttäjälle 'debian-sys-maint' salasana joka on Node 1:llä /etc/mysql/debian.cnf tiedostossa.

Käynnistä Node 1

Varmista että kaikki nodet eivät ole päällä.

Käynnistäessä ensimmäistä Nodea, käytetään komentoa.

 sudo galera_new_cluster

Jos tämä onnistui, voit tarkistaa klusterin tilan

 mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Käynnistä toinen ja kolmas node

Käynnistä muut nodet normaalisti

 sudo service mysql start

tai

 sudo systemctl start mysql

Tarkista klusterin tila

 mysql -u root -p -e "SHOW STATUS LIKE 'wsrep_cluster_size'"

Optional

Ei pakollisia mutta hyödyllisiä

Ilmoitukset

Kannattaa lisätä kaikkiin nodeisiin niin saat ilmoituksia Galeran tilasta.

Kloonaa Git paketti Galeranotify

 cd /etc/mysql
 sudo git clone https://github.com/gguillen/galeranotify.git

Muokkaa galeranotify.py tiedostoa ja määritä sinne sähköpostipalvelimesi asetukset

 sudo nano /etc/mysql/galeranotify/galeranotify.py

Tallenna ja määritä käyttöoikeudet

sudo chown mysql /etc/mysql/galeranotify/galeranotify.py
sudo chmod +x /etc/mysql/galeranotify/galeranotify.py

Lisää tämä galera.cnf konffin loppuun

 wsrep_notify_cmd = /etc/mysql/galeranotify/galeranotify.py

Tallenna ja käynnistä MariaDB uudelleen

Debug

Virhe:

systemd[1]: mariadb.service: Start operation timed out. Terminating.

Kokeile käynnistää verbose modessa manuaalisesti ensimmäisellä kerralla. On normaalia että ensimmäinen käynnistys pysähtyy aikakatkaisu-virheeseen sillä ensimmäisellä kerralla synkronoidaan tietokanta kokonaan ja tämä vie aikaa.

 sudo -u mysql mysqld --verbose

Tarkista ps komennolla mysql:n tila, /usr/sbin/mysqld --wsrep_start_position=XXXXXXXX jos näkyy tarkoittaa että synkronointia suoritetaan.

 ps aux | grep mysql

Lähde: https://www.digitalocean.com/community/tutorials/how-to-configure-a-galera-cluster-with-mariadb-10-1-on-ubuntu-16-04-servers

Mainos / Advertisement: