Instalacja bazy MariaDB (minimum na VirtualBox)

Dziś zajmiemy się instalacją bazy MariaDB czyli w sumie najnowszą wersją bazy MySQL.
Uwaga! Poniższy tekst opisuje proces instalacji jaki przeprowadziłem na wirtualnym serwerze zainstalowanym na moim laptopie. Proces instalacji na serwerze fizycznym z systemem Linux trochę się różni. Opisuję tu instalację bazy w wersji minimalnej.

Na początek ściągamy najnowszą wersję bazy ze strony
https://downloads.mariadb.org/
lub z repozytorium w pakiecie z potrzebnymi bibliotekami
http://mariadb.kisiek.net/mariadb-10.1.22/yum/rhel/7Server/x86_64/rpms/

Potrzebować będziemy plików (paczek) instalacyjnych:

MariaDB-10.1.22-centos7-x86_64-common.rpm
MariaDB-10.1.22-centos7-x86_64-client.rpm
MariaDB-10.1.22-centos7-x86_64-client.rpm
galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm
jemalloc-3.6.0-1.el7.x86_64.rpm
boost-program-options-1.53.0-26.el7.x86_64.rpm

i przenosimy ją na nasz serwer z systemem Linux do specjalnie stworzonego folderu:

[root@localhost ~]# mkdir -p /mariadb/instalki

Na początek utworzymy usera i grupę maria w systemie:

[root@localhost mariadb]# groupadd maria
[root@localhost mariadb]# useradd -g maria maria
[root@localhost mariadb]# passwd maria

Changing password for user maria.
New password: 
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 
passwd: all authentication tokens updated successfully.

Następnie tworzymy odpowiednie foldery dla naszej bazy. Można pozwolić zainstalować się bezie w domyślnych folderach (podczas instalacji RPM-ów nie podajemy żadnych opcji) ale lepiej je oddzielić:

[root@localhost mariadb]# mkdir -p /mariadbdata/mojabaza/log/innodb
[root@localhost mariadb]# mkdir -p /mariadbdata/mojabaza/data/data
[root@localhost mariadb]# mkdir -p /mariadbdata/mojabaza/data/InnoDB
[root@localhost mariadb]# mkdir -p /mariadbdata/mojabaza/tmp

[root@localhost mariadb]# chown -R maria:maria /mariadb
[root@localhost mariadb]# chown -R maria:maria /mariadbdata

Ustawiamy zmienną

[root@localhost mariadb]# BASEDIR=/mariadb/10122
[root@localhost mariadb]# export BASEDIR
[root@localhost mariadb]# env | grep BAS

BASEDIR=/mariadb/10122

Instalujemy pierwszy pakiet (COMMON) który jest niezbędny do instalacji Clienta

[root@localhost instalki]# rpm -ivh --noscripts --replacefiles --badreloc --relocate /usr=$BASEDIR --relocate /etc=$BASEDIR/etc MariaDB-10.1.22-centos7-x86_64-common.rpm

warning: MariaDB-10.1.22-centos7-x86_64-common.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Preparing...                                    ################################# [100%]
Updating / installing...
   1:MariaDB-common-10.1.22-1.el7.cent          ################################# [100%]

Jeśli chcemy aby baza zainstalowała się w domyślnych folderach RPM-y instalujemy poleceniem:
[root@localhost instalki]# rpm -ivh MariaDB-10.1.22-centos7-x86_64-common.rpm
ale tak jak pisałem nie jest to zalecane.

Teraz drugi (CLIENT)

[root@localhost instalki]# rpm -ivh --noscripts --replacefiles --badreloc --relocate /usr=$BASEDIR --relocate /etc=$BASEDIR/etc MariaDB-10.1.22-centos7-x86_64-client.rpm

warning: MariaDB-10.1.22-centos7-x86_64-client.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Preparing...                                     ################################# [100%]
Updating / installing...
   1:MariaDB-client-10.1.22-1.el7.cent           ################################# [100%]

Do zainstalowania pakietu SERVER jest potrzebne:

galera is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64
libjemalloc.so.1()(64bit) is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64
lsof is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64
perl(DBI) is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64
perl(Data::Dumper) is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64
rsync is needed by MariaDB-server-10.1.22-1.el7.centos.x86_64

Do gallery potrzebne jest
libboost_program_options.so.1.53.0()(64bit) is needed by galera-25.3.19-1.rhel7.el7.centos.x86_64

Tak więc zaczynamy od instalacji boost-program-options

[root@localhost instalki]# rpm -ivh boost-program-options-1.53.0-26.el7.x86_64.rpm

warning: boost-program-options-1.53.0-26.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:boost-program-options-1.53.0-26.e################################# [100%]

Następnie GALLERA:

[root@localhost instalki]# rpm -ivh galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm

warning: galera-25.3.19-1.rhel7.el7.centos.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:galera-25.3.19-1.rhel7.el7.centos################################# [100%]

Pakiet JEMMALOC:

[root@localhost instalki]# rpm -ivh jemalloc-3.6.0-1.el7.x86_64.rpm

warning: jemalloc-3.6.0-1.el7.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:jemalloc-3.6.0-1.el7             ################################# [100%]

Instalujemy biblioteki z repozytorium:

[root@localhost instalki]# mount /dev/cdrom /mnt/cdrom
[root@localhost instalki]# yum install perl
[root@localhost instalki]# yum install rsync.x86_64
[root@localhost instalki]# yum install perl-DBI.x86_64
[root@localhost instalki]# yum install lsof.x86_64

Możemy instalować pakier SERVER:

[root@localhost instalki]# rpm -ivh --noscripts --replacefiles --badreloc --relocate /usr=$BASEDIR --relocate /etc=$BASEDIR/etc MariaDB-10.1.22-centos7-x86_64-server.rpm

warning: MariaDB-10.1.22-centos7-x86_64-server.rpm: Header V4 DSA/SHA1 Signature, key ID 1bb943db: NOKEY
Preparing...                          ################################# [100%]
Updating / installing...
   1:MariaDB-server-10.1.22-1.el7.cent################################# [100%]

Sprawdzamy zainstalowane pakiety RPM:

[root@localhost instalki]# rpm -qa | grep -i maria

MariaDB-client-10.1.22-1.el7.centos.x86_64
MariaDB-common-10.1.22-1.el7.centos.x86_64
MariaDB-server-10.1.22-1.el7.centos.x86_64

Następnie przelogowujemy się na usera MARIA. W pliku .bash_profile dopisujemy zmienną MYSQL_HOME:

[maria@localhost ~]$ vi .bash_profile

MYSQL_HOME=/mariadbdata/mojabaza/data
export MYSQL_HOME

Następnie w folderze /mariadbdata/mojabaza/data tworzymy plik my.cnf

[maria@localhost data]$ vi my.cnf

[client]
port=3306
socket=/mariadbdata/mojabaza/data/mojabaza.sock

[mysqld]
wait_timeout=31536000
max_allowed_packet=16M
#lower_case_table_names=0
bind-address=localhost
port=3306
socket=/mariadbdata/mojabaza/data/mojabaza.sock
datadir=/mariadbdata/mojabaza/data/data
basedir=/mariadb/10122
tmpdir=/mariadbdata/mgcf/tmp
long_query_time=30
character-set-server=utf8
default_storage_engine=INNODB
sql_mode="TRADITIONAL,NO_ENGINE_SUBSTITUTION"
max_connections=100
innodb_buffer_pool_size = 64M
join_buffer_size = 64M
sort_buffer_size = 2M
read_rnd_buffer_size = 2M
innodb_file_per_table
innodb_data_file_path=ibdata1.tbs:90M:autoextend
innodb-data-home-dir=/mariadbdata/mojabaza/data/InnoDB
innodb_log_files_in_group=3
innodb_log_file_size = 1G
innodb-log-group-home-dir=/mariadbdata/mojabaza/log/innodb
log-error=/mariadbdata/mojabaza/data/mojabaza.log
pid-file=/mariadbdata/mojabaza/data/mojabaza.pid
query_cache_size=32M

Tworzymy dodatkowe foldery

[maria@localhost data]$ mkdir -p /mariadbdata/mojabaza/log/innodb
[maria@localhost data]$ mkdir -p /mariadbdata/mojabaza/data/data
[maria@localhost data]$ mkdir -p /mariadbdata/mojabaza/data/InnoDB

Przelogowujemy się (na usera MARIA) i sprawdzamy czy zmienna się wczytała:

[maria@localhost data]$ env|grep MYS

MYSQL_HOME=/mariadbdata/mojabaza/data

jeszcze raz ustawiamy zmienną BASEDIR

[maria@localhost data]$ BASEDIR=/mariadb/10122
[maria@localhost data]$ export BASEDIR

Możemy ruszać z tworzeniem instancji

cd /mariadb/10122/bin

[maria@localhost mgcf]$ ./mysql_install_db --user=maria --basedir=/mariadb/10122 --datadir=/mariadbdata/mojabaza/data --ldata=/mariadbdata/mojabaza/data/data

Installing MariaDB/MySQL system tables in '/mariadbdata/mojabaza/data/data' ...
2017-04-22 15:44:50 140612267493632 [Note] /mariadb/10122/sbin/mysqld (mysqld 10.1.22-MariaDB) starting as process 11851 ...
OK
Filling help tables...
2017-04-22 15:44:59 140303741585664 [Note] /mariadb/10122/sbin/mysqld (mysqld 10.1.22-MariaDB) starting as process 11882 ...
OK
Creating OpenGIS required SP-s...
2017-04-22 15:45:02 139755378739456 [Note] /mariadb/10122/sbin/mysqld (mysqld 10.1.22-MariaDB) starting as process 11912 ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'/mariadb/10122/bin/mysqladmin' -u root password 'new-password'
'/mariadb/10122/bin/mysqladmin' -u root -h localhost.localdomain password 'new-password'

Alternatively you can run:
'/mariadb/10122/bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '/mariadb/10122' ; /mariadb/10122/bin/mysqld_safe --datadir='/mariadbdata/mgcf/data/data'

You can test the MariaDB daemon with mysql-test-run.pl
cd '/mariadb/10122/mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

Uruchamiamy serwis bazodanowy

[maria@localhost bin]$ /mariadb/10122/sbin/mysqld --defaults-file=/mariadbdata/mojabaza/data/my.cnf &

[1] 11940
[maria@localhost bin]$ 2017-04-22 15:46:01 140458046273792 [Note] /mariadb/10122/sbin/mysqld (mysqld 10.1.22-MariaDB) starting as process 11940 ...

Sprawdzamy czy się uruchomiła

[maria@localhost mgcf]$ ps -ef | grep my

maria    11940  2187  1 15:46 pts/1    00:00:00 /mariadb/10122/sbin/mysqld --defaults-file=/mariadbdata/mgcf/data/my.cnf
maria    11968  2187  0 15:46 pts/1    00:00:00 grep --color=auto my

Pierwszym krokiem jest ustawienie hasła 'root' na usera root

[maria@localhost mgcf]$ ./mysqladmin -u root password 'root'

Możemy zalogować się do bazy:

[maria@localhost mgcf]$ mysql -u root -p

Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 3
Server version: 10.1.22-MariaDB MariaDB Server

Copyright (c) 2000, 2016, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Lista baz:

MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> select user,host from mysql.user;

+------+-----------------------+
| user | host                  |
+------+-----------------------+
| root | 127.0.0.1             |
| root | ::1                   |
|      | localhost             |
| root | localhost             |
|      | localhost.localdomain |
| root | localhost.localdomain |
+------+-----------------------+
6 rows in set (0.00 sec)

Na koniec tworzymy lokalnego usera bazodanowego MARIA i nadajemy mu takie same prawa jakie posiada ROOT:

MariaDB [(none)]> create user 'maria'@'localhost' identified by 'maria';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'maria'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> GRANT PROXY ON ''@'%' TO 'maria'@'localhost' WITH GRANT OPTION;
MariaDB [(none)]> flush privileges;

Wszystko działa więc możemy się odłączyć

MariaDB [(none)]> exit

Bye

Baza została zainstalowana.

Jakbyśmy chcieli wyłączyć bazę wykonujemy to poleceniem:

/mariadb/10122/bin/mysqladmin shutdown -uroot -proot

Warto dla ułatwienia sobie pracy stworzyć w folderze /mariadb/dba/scripts
dwa skrypty start_maria.sh oraz stop_maria.sh w których zapiszemy powyższe polecenia do uruchamiania i zatrzymywania bazy

START: /mariadb/10122/sbin/mysqld --defaults-file=/mariadbdata/mgcf/data/my.cnf &

STOP: /mariadb/10122/bin/mysqladmin shutdown -u root -p root

Ten wpis został opublikowany w kategorii MySQL (MariaDB) i oznaczony tagami . Dodaj zakładkę do bezpośredniego odnośnika.

Dodaj komentarz