This is a read-only copy of the MariaDB Knowledgebase generated on 2024-12-03. For the latest, interactive version please visit https://mariadb.com/kb/.

Installare MariaDB insieme a MySQL

MariaDB è un rimpiazzo di MySQL pronto all'uso, ma è anche possibile installarlo insieme a MySQL. Questo è utile, per esempio, se si desidera migrare i database e le applicazioni uno per uno.

Ecco il procedimento per installare MariaDB accanto a un'installazione esistente di MySQL.

  • Compilare il tar.gz binario che contiene l'ultima versione (mariadb-5.5.24-linux-x86_64.tar.gz - al momento della stesura di questo articolo) ed estrarre i file in una directory a propria scelta. In questo articolo si presume che la cartella sia /opt.
[root@mariadb-near-mysql ~]# cat /etc/issue
CentOS release 6.2 (Final)

[root@mariadb-near-mysql ~]# rpm -qa mysql*
mysql-5.1.61-1.el6_2.1.x86_64
mysql-libs-5.1.61-1.el6_2.1.x86_64
mysql-server-5.1.61-1.el6_2.1.x86_64

[root@mariadb-near-mysql ~]# ps axf | grep mysqld
 2072 pts/0    S+     0:00          \_ grep mysqld
 1867 ?        S      0:01 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock ...
 1974 ?        Sl     0:06  \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql ...
  • Creare una directory dei dati e i symlink come segue:
[root@mariadb-near-mysql opt]# mkdir mariadb-data
[root@mariadb-near-mysql opt]# ln -s mariadb-5.5.24-linux-x86_64 mariadb
[root@mariadb-near-mysql opt]# ls -al
total 20
drwxr-xr-x.  5 root root 4096 2012-06-06 07:27 .
dr-xr-xr-x. 23 root root 4096 2012-06-06 06:38 ..
lrwxrwxrwx.  1 root root   27 2012-06-06 07:27 mariadb -> mariadb-5.5.24-linux-x86_64
drwxr-xr-x. 13 root root 4096 2012-06-06 07:07 mariadb-5.5.24-linux-x86_64
drwxr-xr-x.  2 root root 4096 2012-06-06 07:26 mariadb-data
  • Creare il gruppo mariadb e l'utente mariadb, e impostare i permessi:
[root@mariadb-near-mysql opt]# groupadd --system mariadb
[root@mariadb-near-mysql opt]# useradd -c "MariaDB Server" -d /opt/mariadb -g mariadb --system mariadb
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-5.5.24-linux-x86_64/
[root@mariadb-near-mysql opt]# chown -R mariadb:mariadb mariadb-data/
  • Creare un nuovo my.cnf in /opt/mariadb dai file di supporto:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/my-medium.cnf mariadb-data/my.cnf
[root@mariadb-near-mysql opt]# chown mariadb:mariadb mariadb-data/my.cnf
  • Modificare il file /opt/mariadb-data/my.cnf e aggiungere i path, il socket, la porta, l'utente e, più importante di tutto, la directory dei dati e la base directory. Alla fine il file dovrebbe contenere almeno quanto segue:
[client]
port		= 3307
socket		= /opt/mariadb-data/mariadb.sock

[mysqld]
datadir         = /opt/mariadb-data
basedir         = /opt/mariadb
port		= 3307
socket		= /opt/mariadb-data/mariadb.sock
user            = mariadb
  • Copiare lo script init.d sdai file di supporto al percorso corretto:
[root@mariadb-near-mysql opt]# cp mariadb/support-files/mysql.server /etc/init.d/mariadb
[root@mariadb-near-mysql opt]# chmod +x /etc/init.d/mariadb
  • Modificare /etc/init.d/mariadb rimpiazzando mysql con mariadb come segue:
- # Provides: mysql
+ # Provides: mariadb
- basedir=
+ basedir=/opt/mariadb
- datadir=
+ datadir=/opt/mariadb-data
- lock_file_path="$lockdir/mysql"
+ lock_file_path="$lockdir/mariadb"

L'ultima modifica in questo file è la più delicata. Bisogna dire a mariadb di usare un solo file cnf. Nella sezione start dopo $bindir/mysqld_safe aggiungere --defaults-file=/opt/mariadb-data/my.cnf. Alla fine le righe dovrebbero assomigliare alle seguenti:

# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
$bindir/mysqld_safe --defaults-file=/opt/mariadb-data/my.cnf --datadir="$datadir" --pid-file="$mysqld_pid_file_path" $other_args >/dev/null 2>&1 &
  • Eseguire mysql_install_db passando esplicitamente il file my.cnf come argomento:
[root@mariadb-near-mysql opt]# cd mariadb
[root@mariadb-near-mysql mariadb]# scripts/mysql_install_db --defaults-file=/opt/mariadb-data/my.cnf
  • Avviare MariaDB così:
[root@mariadb-near-mysql opt]# /etc/init.d/mariadb start
Starting MySQL...                                          [  OK  ]
  • Far sì che MariaDB si avvii al boot del sistema:
[root@mariadb-near-mysql opt]# cd /etc/init.d
[root@mariadb-near-mysql init.d]# chkconfig --add mariadb 
[root@mariadb-near-mysql init.d]# chkconfig --levels 3 mariadb on
  • Infine testare che entrambe le istanze funzionino:
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();"
+-----------+
| VERSION() |
+-----------+
| 5.1.61    |
+-----------+
[root@mariadb-near-mysql ~]# mysql -e "SELECT VERSION();" --socket=/opt/mariadb-data/mariadb.sock
+----------------+
| VERSION()      |
+----------------+
| 5.5.24-MariaDB |
+----------------+

E gli aggiornamenti di MariaDB?

Dopo aver impostato mariadb.socket, il file my.cnf e databases in /opt/mariadb-data se si vuole aggiornare la versione di MariaDB occorre:

  • decomprimere la nuova versione in /opt accanto alla versione corrente
  • arrestare MariaDB
  • modificare il symlink mariadb in modo che punti alla nuova directory
  • avviare MariaDB
  • eseguire lo script upgrade... ma ricordando che bisogna specificare l'opzione socket --socket=/opt/mariadb-data/mariadb.sock
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.