42

我刚刚安装了 xampp,并且正在使用命令行编写 mySQL。我正在使用没有密码的“root”,并且可以连接到 mysql,但CREATE DATABASE由于出现错误而无法连接1044 access denied for user '' @ 'localhost'。我以-uroot.

我在 phpMyadmin 中有权限做我想做的事,但是,在命令行中我似乎没有写权限。我查看了有关此主题的所有其他相关帖子,但无济于事。我不能授予特权,因为无论如何我都没有。

4

9 回答 9

73

您是否以 root 身份登录 MySQL?以 MySQL root 身份登录时,您必须明确授予“常规” MySQL 用户帐户的权限。

首先为您的 MySQL 数据库设置一个 root 帐户。

在终端类型中:

mysqladmin -u root password 'password'

要登录 MySQL,请使用以下命令:

mysql -u root -p

要设置权限,使用 skip-grant-tables 选项手动启动服务器,打开 mysql 客户端并手动更新 mysql.user 表和/或 mysql.db 表。不过,这可能是一项乏味的任务,因此,如果您需要的是具有所有权限的帐户,我将执行以下操作。

skip-grant-tables使用选项启动服务器

启动 mysql 客户端(没有用户名/密码)

发出命令

flush privileges;

这会强制加载授权表。

使用类似这样的 GRANT 命令创建一个新帐户(但将用户名和密码替换为您想要使用的任何内容。

GRANT ALL on *.* to 'username'@'localhost' identified by 'password';

以正常模式重新启动服务器(没有跳过授权表)并使用新创建的帐户登录。

请参阅MySQL 文档。

于 2012-08-02T09:14:32.220 回答
13

导航 C:\xampp\mysql\bin\ 并确保文件 mysql.exe 在该文件夹中。

mysql -uroot -p

如果没有密码,只需按 Enter。

提示变为

mysql>

做你的mysql命令

于 2012-08-01T13:42:49.647 回答
6

默认情况下,XAMPP 中没有为 root 用户设置密码。

您可以为 MySQL 的 root 用户设置密码。

导航

本地主机:80/security/index.php

并为root用户设置密码。

注意:如果您的 Apache 在不同的端口上,请更改上述 url 中的端口号。

打开 XAMPP 控制面板 点击“Shell”按钮

命令提示符窗口现在将以该窗口类型打开

mysql -u root -p;

它将要求输入密码,输入您为 root 用户设置的密码。

在那里你以root用户身份登录:D现在做你想做的事情:P

于 2013-10-12T15:17:47.310 回答
4

访问 MariaDB 10 数据库服务器

停止数据库服务器后,下一步是通过启动数据库服务器并跳过网络和权限表来通过后门访问服务器。这可以通过运行以下命令来完成。

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

重置 MariaDB 根密码

现在数据库服务器已以安全模式启动,运行以下命令以不提示密码的情况下以 root 身份登录。为此,请运行以下命令

sudo mysql -u root

然后运行以下命令以使用 mysql 数据库。

use mysql;

最后,运行以下命令来重置 root 密码。

update user set password=PASSWORD("new_password_here") where User='root';

new_password _here替换为您要为 root 帐户创建的新密码,然后按 Enter。

之后,运行以下命令以更新权限并将更改保存到磁盘。

flush privileges;

退出(CTRL + D),你就完成了。

接下来正常启动 MariaDB 并测试您刚刚创建的新密码。

sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service

通过运行以下命令登录到数据库。

sudo mysql -u root -p

来源: https ://websiteforstudents.com/reset-mariadb-root-password-ubuntu-17-04-17-10/

于 2018-10-22T15:11:28.037 回答
1

我有同样的问题,原来是 MariaDB 被设置为只允许 root 通过 unix_socket 插件在本地登录,因此清除该设置允许使用命令行上指定的用户成功登录,提供当然,输入正确的密码。在 Ask Ubuntu 上查看这个答案

于 2019-11-29T18:20:18.580 回答
0

我重新安装了 ODBC 连接器 msi 并直接重新安装了 mySQL(除了 xampp),它现在可以工作了。我认为这是一个连接器问题,因为 SHOW DATABASES 实际上根本没有显示我的数据库。

我的“root”登录无法访问数据库,这使它看起来权限有限,但实际上连接不正确。

于 2012-08-02T11:26:27.280 回答
0

服务器文件仅更改名称文件夹

etc/mysql
rename
mysql-
于 2016-03-30T05:35:58.083 回答
-1

这可能对 Ubuntu 有所帮助:

转到 /etc/mysql/my.cnf 并评论这一行:

bind-address           = 127.0.0.1

希望这对某人有帮助,我也一直在寻找这个

干杯

于 2015-02-20T09:07:09.590 回答
-2

和用户名之间不能有空格字符-u

mysql -uroot -p
# or
mysql --user=root --password
于 2012-08-01T13:36:35.673 回答