← Back to team overview

maria-discuss team mailing list archive

New Question: Mariadb refuses to stay confined to install directory



A new question has been asked in "Compiling MariaDB From Source" by openiduser33:
I've been struggling with this off and on for weeks. I need a contained MariaDB install running in the home directory.

My most recent attempt (and what would be my preferred method) is compiling from source. No matter what I do though MariaDB insists on trying to create /var/run/mysqld/mysqld.sock on every run and fails.

I compiled it from source with --prefix pointing to my home directory. I ran mysql with --basedir and --defaults-file. The defaults-file I used contains the location of my mysql.sock file in the home directory but MariaDB will not use it. I even tried recompiling with --exec-prefix as per the MySQL 5.5 documentation but this screws the entire installation up, causing MariaDB to recreate the entire prefix path from root underneath src/efix=/ where I'm storing the source while I install.

Here is my configure options:

##./configure --prefix=/home/user/web/servers/mariadb --enable-assembler \
--with-extra-charsets=complex  --enable-thread-safe-client  --with-big-tables \
--with-plugin-maria --with-aria-tmp-tables --without-plugin-innodb_plugin --without-plugin=tokudb \
--with-mysqld-ldflags=-static --with-client-ldflags=-static --with-readline \
--with-ssl --with-plugins=max-no-ndb --with-embedded-server --with-libevent \
--with-mysqld-ldflags=-all-static  --with-client-ldflags=-all-static \
--with-zlib-dir=bundled --enable-local-infile##

And here is what happens when I try to launch MariaDB:

##$ bin/mysqld_safe --basedir=/home/user/web/servers/mariadb --defaults-file=/home/user/web/servers/mariadb/my.cnf
131128 16:20:20 mysqld_safe Logging to '/home/user/web/servers/mariadb/log/error.log'.
mkdir: cannot create directory ‘/var/run/mysqld’: Permission denied
Fatal error Can't create database directory '/var/run/mysqld/mysqld.sock'##

My socket file is specific in the given my.cnf file as /home/user/web/servers/mariadb/run/mysql.sock

No matter what I do I can't get MariaDB to behave and run in user land. What am I doing wrong? I've tried the Linux binaries with slightly more success but I still felt like I was fighting the server to get it to read files from the correct location. I'd like to have it compiled from source though and it *should* be easier this way since I can specify a prefix. How can I get MariaDB to follow the set prefix for all files?

To view or answer this question please visit: http://mariadb.com/kb/en/mariadb-refuses-to-stay-confined-to-install-directory/