A partir de OpenBSD/adJ 5.7 MariaDB remplaza a MySQL. Según https://es.wikipedia.org/wiki/MariaDB MariaDB fue iniciada por el fundador de MySQL después de que Oracle compró Sun y MySQL, pues consideraba que Oracle había hecho la compra para reducir competencia de sus bases de datos.
Debe instalar los paquetes mariadb-client-10.0.25v1 y mariadb-server-10.0.25v1. Aunque el nombre de los paquetes cambia los comandos para operarla siguen siendo los mismos. Tras instalar el servidor debe ejecutar mysql_install_db.
Inicialice el directorio donde estarán las bases de datos con
doas /usr/local/bin/mysql_install_db
Para aumentar el límite de archivos que el usuario
_mysql
de clase mysql
puede abrir
agregue a /etc/login.conf
:
mysql:\ :openfiles-cur=2048:\ :openfiles-max=4096:\ :tc=daemon:
tenga en cuenta no dejar espacios al
final de cada línea y que desde la segunda línea cada una comiencen con el caracter
tabulador. A continuación regenere el archivo binario
/etc/login.conf.db
con
cd /etc doas cap_mkdb /etc/login.conf
Después agregue mysqld
a
pkg_scripts
en /etc/rc.conf.local
.
A continuación lance el servidor con:
doas sh /etc/rc.d/mysqld start
Los errores quedarán en /var/mysql/
.
host
.err
Después puede establecer una clave para el usuario
root
de MariaDB cuando ingresa desde
localhost
con:
/usr/local/bin/mysqladmin -u root password 'nueva-clave' /usr/local/bin/mysqladmin -u root -pnueva-clave -h Jesus.miong.org password 'nueva-clave'
Después puede iniciar una sesión, crear bases de datos, crear usuarios y otorgarles privilegios.
Para apagar el servidor mysql:
mysqladmin -u root -p shutdown
Si desea usar mysql con
php, instale además de los paquetes
básicos de php
(php-core-
y
v
php-mysql-
)
v
mysql -u root -p
puede crear la base de datos datos
, y un
usuario erfurt
que la pueda administrar (i.e
con todos los privilegios excepto GRANT) y con clave
vsewf
usando:
CREATE DATABASE datos; GRANT ALL PRIVILEGES ON datos.* TO erfurt@localhost IDENTIFIED BY 'vsewf';
Algunas operaciones usuales del administrador son:
SHOW DATABASES;
que muestra todas las bases disponibles.
USE base1;
que permite usar la base base1.
SHOW TABLES;
que muestra todas las tablas de la base activa.
DESCRIBE tabla; SHOW CREATE TABLE tabla;
que presentan estructura de la tabla.
Si olvida la clave de root después de haberla establecido puede cambiarla entrando a la cuenta de administrador:
Detenga el servidor.
Inicie el servidor con /usr/local/libexec/mysqld --user=root --skip-grant-tables
Ejecute:
# mysql mysql> USE mysql mysql> UPDATE USER SET PASSWORD=password('miclave') WHERE user='root'; mysql> FLUSH PRIVILEGES; mysql> EXIT
Vuelva a apagar el servidor y reinicielo con: /usr/local/bin/mysqld_safe &
MariaDB mantiene bases de datos en directorios y las tablas en archivos. No es recomendable que modifique tales archivos, al menos no, mientras el servidor esté activo.
Para sacar una copia de respaldo de todas las bases de datos con:
mysqldump --force -p --all-databases > /respaldomysql/dump-1nov2007.sql
y posteriormente restaurarla con:
mysql < /respaldomysql/dump-1nov2007.sql
Puede emplear aplicaciones para Apache en modo
chroot
que usen bases de datos
MariaDB de tres formas:
(1) Conectándose a un puerto TCP/IP donde responda
MariaDB, (2) poniendo el socket de MariaDB en un directorio
dentro de la jaula del servidor web o (3) Corriendo MariaDB
dentro de la jaula
chroot
(ver http://structio.sourceforge.net/guias/servidor_OpenBSD/mysql.html#mysql-chroot).
Para correro MariaDB dentro de A continuación documentamos como ubicar el socket de MariaDB dentro de la jaula del servidor web (/var/www/).
Una vez instale maria-server
cree el directorio en el cual ubicará
el socket, digamos:
mkdir -p /var/www/var/run/mysql/ chown _mysql:_mysql /var/www/var/run/mysql/ chmod a+w /var/www/var/run/mysql/ chmod +t /var/www/var/run/mysql/
y después inicie MariaDB indicando la ruta del
socket con la opción --socket
,
por ejemplo para que el cambio se efectúe en
cada inicio, edite
/etc/rc.conf.local
para
agregar:
mysqld_flags="--socket=/var/www/var/run/mysql/mysql.sock"
e inicie desde /etc/rc.local
con:
pgrep mysqld > /dev/null if [ "$?" != 0 -a X"${mysqld_flags}" != X"NO" -a \ -x /usr/local/bin/mysqld_safe ]; then echo -n ' mysqld ' /usr/local/bin/mysqld_safe ${mysqld_flags} & fi
Sus aplicaciones PHP pueden entonces conectarse con:
$dbhost = "localhost"; $dbuname = "miusuario"; $dbpass = "miclave"; mysql_connect($dbhost, $dbuname, $dbpass);
Tenga en cuenta también que otros binarios de MariaDB también requerirán
la opción --socket=/var/www/var/run/mysql/mysql.sock
al ejecutarse por ejemplo:
mysqldump --socket=/var/www/var/run/mysql/mysql.sock \-p --all-databases
Referencias:
Una explicación de algo de la instalación y el uso de MySQL en OpenBSD: http://www.sancho2k.net/filemgmt_data/files/mysql_notes.html
La documentación de MariaDB : https://mariadb.com/kb/en/mariadb/documentation/
Ayuda para cambiar clave de root en sistemas Linux: http://www.netadmintools.com/art90.html