Skip to main content

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

$ mysqld

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.

MariaDB in Termux


In a future blog post I will create a nodejs web app to connect to the database and display the rows.

Comments

Popular posts from this blog

Hobby project - Store and view exchange rates

The next step in my project was to test out being able store and display the rates in a database. I decided to use nodejs and supabase for this. Everything worked beautifully. Only hickup was the following error due to my package.json not being correct. SyntaxError: Cannot use import statement outside a module Added this to package.json   "type": "module" This works beautifully. Right now I am just testing fragments of what could be part of a bigger system to see what is possible and what works and how easy to code on a mobile. There is no fully functioning integrated end to end system just yet. This is also what I tested. A serverless append-only database using GitHub + Actions + Pages. That’s basically a lightweight backend system. This was the ChatGPT prompt I used. Guide me through each step. This is what I want. A manually run github actions that adds to docs/data.json with the current date and time. docs/index.html displays all the entries in data.json. Make s...

What is important

Every now and again, I get reminded of the why. Why I have handed my life over to God. It is 3:08 p.m. and I have decided to write. Honestly, I feel like I could end this blog post right here. What more is there to say? God above all else. God is our compass on this journey called life. Everything else can become a distraction. Maybe not everything, but certainly many things. You get the point. What is important? What do we prioritise? What do we make time for? The answers look different for everyone. Our lives are different. We are tested differently. We are all products of our circumstances, and those circumstances vary from person to person. Yet God is the common thread across humanity and throughout time. God always was and always will be. One day, we will answer to God. We will give account to God. We cannot live without food, water, and oxygen, but all of those things come from God. So how can we live without God? How timely. I just received a notification from the Quranly app: S...

Running php and apache on termux

This was my experience getting php and apache to run on termux apt update && apt upgrade -y apt install php-apache I was following an old blog post that used php 7 and got these errors Can't locate API module structure `php7_module' in file /data/data/com.termux/files/usr/libexec/apache2/libphp.so: undefined symbol: php7_module Cannot load /data/data/com.termux/files/usr/libexec/apache2/libphp7.so Corrected in apache config file vim $PREFIX/etc/apache2/httpd.conf LoadModule php_module /data/data/com.termux/files/usr/libexec/apache2/libphp.so Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP. Comment out mpm_worker and use mpm_prefork #LoadModule mpm_worker_module libexec/apache2/mod_mpm_worker.so LoadModule mpm_prefork_module libexec/apache2/mod_mpm_prefork.so This still does not work as apache (httpd) was failing silently. According to Chatty LoadModule php_module ...libphp.so often fails in Termux becau...