Setting up a database server to use with my nodejs server on Android in Termux
Following from my blog post on nodejs on android I now wanted to install a database server so I could develop a simple CRUD web app and doing it all on Android.
MariaDB is a free and open source fork of MySQL and is what is available under Termux, which I already have installed and working. The following are the commands I used to install MariaDB.
$ apt update && apt upgrade
$ apt install mariadb
Next I started the server using
What I learnt from doing this is that I can no longer run commands in the Termux session and what I should have done was run it in the background as follows. I could have also started a new Termux session.
$ mysqld_safe -u root &
But now I get the following error, "mysqld_safe A mysqld process already exists". I found out how to handle this as follows
$ killall mysqld mysqld_safe
This may take a few seconds and I can verify that no mysql processes are still running using the following command
$ ps aux | grep mysqld
Next I wanted to create a database and a table and add some rows and query that table
$ mysql -u root
I got the following error, "ERROR 1698 (28000): Access denied for user 'root'@'localhost'". This bug report comment explains in detail what was happening, not a bug really. I needed to use the second account to login.
I cannot use tsu because my device is not rooted, "/data/data/com.termux/files/usr/bin/tsu: 144: exec: : Permission denied" and I did not make note of the second all priveleges account after install. I just reinstalled termux and mariadb because reinstalling mariadb was not displaying the second account info like the first time. Guessing I needed to do a clean install which I think requires tsu. Later learnt that the account was the same as my Termux account and I could figure this out using the whoami command.
I was now able to login and create my table and add some rows.
In a future blog post I will create a nodejs web app to connect to the database and display the rows.