我一直在按照手册在Ubuntu上安装软件套件。我完全不了解MySQL。我已经在我的Ubuntu上完成了以下安装。

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

然后我做了

cd ~/Desktop/iPDC-v1.3.1/DBServer-1.1
mysql -uroot -proot <"Db.sql"

我最终得到以下错误消息。

错误1045(28000):拒绝访问用户'root'@'localhost'(使用密码:YES)

我该如何修复它并继续?


当前回答

在终端输入:

mysql -u root -p

然后它会问你密码。

其他回答

我也遇到过类似的问题:

错误1045(28000):用户“root”@“localhost”(正在使用)被拒绝访问 密码:没有)

但对我来说,这个原因真的很愚蠢。 我从Word文档复制了该命令,问题是连字符没有ASCII 0x2D代码,而是Unicode 0xE2 0x80 0x93 UTF-8序列(代码点U+2013 EN DASH)。

错误的方式:

mysql -u root –pxxxx

正确的方式:

mysql -u root -pxxxx

两者看起来一样,但并不相同(尝试一下,复制和粘贴替换密码)。

面对这种类型的错误,建议尝试输入命令,而不是复制和粘贴。

虽然上面的答案(使用mysqladmin)在macOS v10.15 (Catalina)上有效,但在Ubuntu上无效。然后我尝试了许多其他的选项,包括MySQL的安全启动,但都不起作用。

下面是一个例子:

至少在这个版本中,我得到了5.7.28-0ubuntu0.18.04.4的答案缺少IDENTIFIED WITH mysql_native_password。5.7.28是当前LTS的默认设置,因此应该是大多数新系统的默认设置(直到Ubuntu 20.04 (Focal Fossa) LTS问世)。

我发现不能设置root密码MySQL服务器,现在应用

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

这是可行的。

对于那些目前的答案不工作的人,可以试试这个(在macOS上测试):

mysql -h localhost -u root -p --protocol=TCP

在此之后,将要求您输入密码,您应该使用您的操作系统用户密码。然后当你进入MySQL时,你可以运行:

select Host, User from mysql.user;

你应该看到:

MySQL [(none)]> select Host, User from mysql.user;
+-----------+------------------+
| Host      | User             |
+-----------+------------------+
| localhost | mysql.infoschema |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+

从这里你可以改变配置,编辑密码或修改拨款。

我在Ubuntu 18.04 (Bionic Beaver) LTS和MySQL服务器版本5.7.27-0ubuntu0.18.04.1 (Ubuntu)时遇到了这个问题。

我的解决方案是(以root身份运行sudo -i):

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES;
EOSQL

mysqladmin -u root password new_pw

我也遇到了同样的问题。我做了:

打开cmd 进入C:\Program Files\MySQL\MySQL Server 8.0\bin> (MySQL Server 8.0可能不同,取决于你安装的服务器) 然后输入以下命令mysql -u root -p 它会提示输入密码…简单地按Enter,因为有时你在安装时输入的密码会变为空白。

现在您可以简单地访问数据库。

这个解决方案在Windows平台上很适合我。