解决Termux- Mariadb-mysql 提示Access denied for user 'root'@'localhost'

当我们在手机里的 Termux 安装完 Mariadb 数据库,然后使用 mysqld 启动数据库以后,使用mysql -u root -p试图登陆数据库的时候却发现有以下提示。

$ mysql -u root
ERROR 1698 (28000): Access denied for user 'root'@'localhost'

正常情况下,一般我们的手机为了使用稳定一般是没有 root 过的,不过在这种情况下你如果将 termux 切换为 root 用户前提是你手机 root 啦,然后使用 tsu再用 mysql -u root -p 登陆时没有问题的。

但是我们想在不root 手机情况下,设置 mysql 的 root 密码,并正常使用密码登陆,我们看看 刚安装完 mariadb 会提示

Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is u0_a123@localhost, it has no password either, but
you need to be the system 'u0_a123' user to connect.

因此,mariadb实际上拥有2个具有所有特权的用户。root只能从系统根目录访问第一个,而第二个则是您的Termux应用程序用户(在我的情况下是u0_a123)。

$ mysql -u u0_a123
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8
Server version: 10.4.6-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

那明白了为什么以后,我们现在来修改 mysql 的 root 密码。通过以下方式连接到数据库:

mysql -u $(whoami)

使用以下SQL命令更新root密码:

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

现在应该可以使用mysql -u root -p:

$ mysql -u root -p
Enter password: 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 16
Server version: 10.4.6-MariaDB MariaDB Server
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>

放两张截图 jpg ,请不要在意 mysql root 密码设置的是 mysql.123 仅为测试,实际使用可别这么整!~

termux-mariadb-2Ubuntu2004TLS.jpegtermux-mariadb-2Ubuntu2004TLS.jpeg

Comments

发表评论

电子邮件地址不会被公开。 必填项已用*标注