dotfiles
My PC Dotfiles & Websitegit clone https://github.com/maydayv7/dotfiles
shells/sql.nix (956B)
1pkgs: let
2 pkg = pkgs.mariadb;
3in {
4 name = "SQL";
5 packages = [pkg];
6 shellHook = ''
7 alias mysql='mysql -u root'
8 MYSQL_HOME=$HOME/.mysql
9 MYSQL_DATADIR=$MYSQL_HOME/data
10 export MYSQL_UNIX_PORT=$MYSQL_HOME/mysql.sock
11 MYSQL_PID_FILE=$MYSQL_HOME/mysql.pid
12
13 if [ ! -d "$MYSQL_HOME" ]
14 then
15 # Make sure to use normal authentication method
16 # otherwise we can only connect with unix account
17 # but users do not actually exist in NixOS
18 mysql_install_db --auth-root-authentication-method=normal \
19 --datadir=$MYSQL_DATADIR --basedir=${pkg} \
20 --pid-file=$MYSQL_PID_FILE
21 fi
22
23 # Starts the daemon
24 mysqld --datadir=$MYSQL_DATADIR --pid-file=$MYSQL_PID_FILE \
25 --socket=$MYSQL_UNIX_PORT 2> $MYSQL_HOME/mysql.log &
26 MYSQL_PID=$!
27
28 finish() {
29 mysqladmin -u root --socket=$MYSQL_UNIX_PORT shutdown
30 kill $MYSQL_PID
31 wait $MYSQL_PID
32 }
33 trap finish EXIT
34 '';
35}