Android

안드로이드 디바이스에 MariaDB 설치 및 외부접속 허용까지

귀뚜래미 2023. 6. 26. 09:37
728x90

1. 안드로이드 디바이스에 Termux 설치

https://f-droid.org/en/packages/com.termux/

 

Termux | F-Droid - Free and Open Source Android App Repository

Terminal emulator with packages

f-droid.org

최신버전을 받아 설치한다.

 

2. Termux 실행 후 MariaDB 설치를 위해 다음의 순서를 따른다.

pkg update

pkg upgrade

 

pkg install mariadb         (root권한 설치가 아니므로 아래의 단계를 거쳐 root 권한을 활성화 해야함)

 

mysqld_safe --skip-grant-tables --skip-networking &

mysql -u root

flush privileges;

 

Mariadb 10.1.20 이상
ALTER USER 'root'@'localhost' IDENTIFIED BY '패스워드';

Mariadb 10.1.20 미만
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('패스워드');

 

이후 MariaDB를 종료 후 재시작 한다.

 

exit

ps -e | grep mysql  (mysql의 PID를 기억해둘것)

 

kill -9 'PID'

 

다시 MariaDB를 실행해준다.

 

mysqld -u -root&

mysql -u root -p

 

패스워드를 입력 후 사용하면 된다.

 

3. Termux 실행 시 자동으로 MariaDB 실행되도록 하기

vim을 설치한다.

 

pkg install vim

 

vim .bashrc

 

내용을 수정하려면 a를 누르고 아래의 내용을 입력한다.

 

if ! ps -e |grep "mysql" > /dev/null;
then
	echo "starting mariadb"
	mysqld -u -root&
fi

 

이후 esc를 눌러 수정 모드를 빠져나와 :wq! 엔터를 입력한다.

 

4. MariaDB 외부 접속 허용하기

mysql -u root -p

use mysql

 

select host, user from user;

 

user 테이블에서 호스트와 유저를 조회한다.

host가 %로 되어있을 경우 어떤 ip에서도 접속이 가능한 상태이다.

 

root 계정에 모든 ip에서의 외부접속을 허용하려면 다음을 따른다.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '패스워드';

특정 IP 대역에서만 접속을 허용하려면 다음을 따른다.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.%' IDENTIFIED BY '패스워드';

특정 IP에서만 접속을 허용하려면 다음을 따른다.

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.0.1' IDENTIFIED BY '패스워드';

 

 

허용 전으로 되돌리려면 다음을 따른다.

DELETE FROM mysql.user WHERE Host='%' AND User='유저명';
FLUSH PRIVILEGES;

 

원격 접속

mysql -h '원격 IP주소' -u '허용된 사용자 이름(ex. root)' -p

 

728x90