在 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 服务器的主要内容,如果未能解决你的问题,请参考以下文章
PHP 无法在 CentOS 7 上连接到 PostgreSQL