MariaDB
MariaDB on mysql tavoin tietokantapalvelinohjelmisto.
Sisällysluettelo
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