在 Termux Android 上连接到 MariaDB 服务器

Posted

技术标签:

【中文标题】在 Termux Android 上连接到 MariaDB 服务器【英文标题】:Connecting to MariaDB Server on Termux Android 【发布时间】:2019-01-03 11:48:58 【问题描述】:

我正致力于在 android 设备上的本地数据库上直接启动 NodeJS 项目,为此我使用 Termux 和 MariaDB Server。

使用命令后完美运行

mysqld & 

node mynodefile.js

在 Termux 上。但我想避免使用“mysqld &”命令并以另一种方式启动 MariaDB 服务器。所以我下载了适用于 Android 的 MariaDB 服务器应用程序。但即使我用它启动服务器,Termux 甚至都没有检测到新进程,我也无法访问 mysql。它给了我以下错误:

$ mysql -u root -p -h127.0.0.1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/data/com.termux/files/usr/var/lib/mysqld.sock' (111)

服务器似乎仍然关闭...我该如何解决我的问题?

【问题讨论】:

试试-h localhost-h ::1 【参考方案1】:

我最终通过修改我的源代码以访问 MariaDB 服务器来避免它。我使用 Cordova 将我的移动应用程序连接到我的 NodeJS 项目。我不再需要 Termux。

【讨论】:

【参考方案2】:

试试

$mysql_install_db

$mysqld

然后

$mysql -u root -p

【讨论】:

【参考方案3】:

在运行mysql_install_db 之前,尝试在/data/data/com.termux.files/usr/etc 中创建my.cnf.d 文件夹。为我工作。

$ cd /data/data/com.termux.files/usr/etc
$ mkdir my.cnf.d
$ mysql_install_db
$ mysqld_safe -u root &
$ mysql -u root

来源: https://parzibyte.me/blog/2018/11/12/instalar-mysql-mariadb-en-android-con-termux/

【讨论】:

【参考方案4】:

termux 的解决方案:

    运行mysqld_safe 打开新会话 运行mysql -u $(whoami) 将权限更改为 root,将密码更改为 root 并刷新更改(mysql 文档中的导师),quit; 运行mysql -u root -p

【讨论】:

【参考方案5】:

我正面临像您的问题。但在 *** 中没有解决这个问题。 所以我试图通过在 termux GitHub 中提出问题来解决这个问题。但我解决了这个问题。 https://github.com/termux/termux-packages/issues/4540 如果你是首发,请继续关注。 sudo apt update && apt upgrade -y sudo apt install mariadb

然后打开 mariadb mysqld_safe -u root & 如果不工作尝试 mysql (因为你不是 root 用户,我的意思是不是在真正的 linux 中) 当您关闭 termux 应用程序并下次尝试时,您会遇到这个问题。 mysql ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/data/data/com.termux/files/usr/tmp/mysqld.sock' (2)

因此,请按照以下方式清除这一点。 须藤清除

cd '/data/data/com.termux/files/usr' ; /data/data/com.termux/files/usr/bin/mysqld_safe --datadir='/data/data/com.termux/files/usr/var/lib/mysql'

并通过它。在命令之上。然后打开新会话。 类型 须藤mysql 你可以制作数据库,你会看到 mariadb 的欢迎。 如果您遇到一些连接问题。请尝试以下操作。 当你打开 mariadb. 让我们输入

sudo CREATE USER 'root' IDENTIFIED BY 'p@ssw9rd'; p@ssw9rd 是密码,root 是默认用户名。 您可以更改 p@ssw9rd。

sudo GRANT ALL ON DATABASE_NAME.* TO root@localhost IDENTIFIED BY 'p@ssw9rd';

在 database_name 中,输入您的数据库名称。 这是一个问题,从来没有比这更难的了。

【讨论】:

【参考方案6】:

安装

pkg update & pkg upgrade
pkg install mariadb

运行 mariadb 守护进程

mysqld

或者使用这个

mysqld_safe

创建新用户和密码

mysql
use mysql;
set password for 'new_user'@'localhost' = password('YOUR_ROOT_PASSWORD_HERE');
flush privileges;
quit;

用新用户登录

mysql -u new_user -p

然后输入你的密码。

注意!每次在termux中使用mysql,都要先激活mariadb守护进程

【讨论】:

以上是关于在 Termux Android 上连接到 MariaDB 服务器的主要内容,如果未能解决你的问题,请参考以下文章

text 在GCP上连接到VM

PHP 无法在 CentOS 7 上连接到 PostgreSQL

如何在不同的端口上连接到 MySQL

Python 3.7 在 MAC 上连接到 HSQLDB

如何在 Windows server 2012 上连接到端口 8080 wildfly?

在 azure sql 上连接到数据库的问题