根据您提供的信息,您已经成功启动了MariaDB服务,但在使用密码连接到MariaDB时仍然遇到了"Access denied for user 'root'@'localhost'"的访问被拒绝错误。
这种情况可能是由于以下原因之一导致的:
1. 密码错误:请再次确保在连接时输入的密码是正确的,并注意密码是区分大小写的。如果您忘记了密码,可以尝试重置密码并设置一个新密码。
2. 用户名错误:如果您不是使用 `root` 用户连接到MariaDB,请确认您使用的是正确的用户名。在某些情况下,可能会创建具有不同用户名的数据库用户。
3. 权限问题:请检查 `root` 用户在 `localhost` 主机上是否具有正确的访问权限。您可以使用以下命令来检查 `root` 用户的主机和访问权限:
```sql
SELECT User, Host FROM mysql.user WHERE User = 'root';
```
确保 `root` 用户的主机为 `localhost`,并且存在与该用户相关的适当权限。
如果您仍然无法解决问题,请尝试使用以下步骤:
1. 停止MariaDB服务:
```bash
sudo systemctl stop mariadb
```
2. 启动MariaDB服务并跳过权限检查:
```bash
sudo mysqld_safe --skip-grant-tables &
```
3. 在另一个终端或命令提示符中,连接到MariaDB的命令行:
```bash
mysql -u root
```
4. 在MariaDB命令行中执行以下命令来修改root用户的密码:
```sql
USE mysql;
UPDATE user SET authentication_string = PASSWORD('000317') WHERE User = 'root';
FLUSH PRIVILEGES;
```
这将更新root用户的密码为 `000317`。确保将 `000317` 替换为您想要设置的新密码。
5. 退出MariaDB命令行。
6. 停止MariaDB服务:
```bash
sudo systemctl stop mariadb
```
7. 启动MariaDB服务:
```bash
sudo systemctl start mariadb
```
然后尝试使用新设置的密码 `000317` 进行登录。如果问题仍然存在,请提供更多详细信息,例如MariaDB的配置文件内容、错误日志的内容或其他相关信息,以便更好地帮助您解决连接问题。
========================
根据您提供的信息,您在另一个终端中执行了跳过权限检查的命令,并尝试更新了root用户的密码。然后,在重新启动MariaDB服务后,仍然无法使用新密码登录到MariaDB,并且仍然收到"Access denied for user 'root'@'localhost'"的错误消息。
这个问题可能是由于以下原因之一导致的:
1. 更新密码未生效:在跳过权限检查的情况下,尝试更新root用户密码可能没有成功。请确保在执行 `UPDATE user SET authentication_string = PASSWORD('000317') WHERE User = 'root';` 命令时没有出现任何错误消息。如果命令执行成功但未更改任何行,请尝试使用以下命令更新密码:
```sql
UPDATE user SET password = PASSWORD('000317') WHERE User = 'root';
```
2. MariaDB配置错误:启动失败可能是由于MariaDB的配置文件存在错误导致的。您可以检查MariaDB的错误日志文件以获取更多详细信息。日志文件通常位于 `/var/log/mysql/error.log` 或 `/var/log/mariadb/mariadb.log`。尝试查看日志文件以了解启动失败的原因,并根据需要进行修复。
3. 其他系统问题:启动失败还可能是由于系统级问题导致的。您可以使用以下命令查看更多有关启动失败的详细信息:
```bash
systemctl status mariadb.service
```
这将显示有关MariaDB服务状态的信息,包括任何错误或警告消息。
如果问题仍然存在,请提供更多关于MariaDB的错误日志文件内容、启动状态的输出或其他相关信息,以便更好地帮助您解决问题。