我一直在按照手册在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)

我该如何修复它并继续?


当前回答

对于WSL2,我输入以下命令

sudo mysql -u root -p

它提示我输入密码,我假设这一步是设置密码。我输入了一个随机字符串,然后就可以访问MySQL提示符了。 这可能不是正确的答案,但至少可以帮助你开始

其他回答

从这个链接复制,我有同样的问题,这解决了问题。在我们为数据库添加密码之后,我们需要添加-p(基于密码的登录),然后输入密码。否则,它将返回以下错误:

mysql -u root -p

默认情况下,密码为空,因此您必须按照以下步骤修改密码。

连接MySQL

root# mysql

Use mysql

mysql> update user set password=PASSWORD('root') where User='root';

最后,重新加载特权:

mysql> flush privileges;
mysql> quit

在服务器初始启动时,假设服务器的数据目录为空,会发生以下情况:

完成服务器的初始化。 在data目录下生成SSL证书和密钥文件。 安装并启用validate_password插件。 创建超级用户帐户“root”@“localhost”。超级用户的密码被设置并存储在错误日志文件中。 要显示它,使用以下命令:

Shell > sudo grep '临时密码' /var/log/mysqld.log

请使用临时密码登录,并自定义超级用户密码,尽快修改root用户密码:

Shell > mysql的root -p

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!

我也遇到过类似的问题:

错误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

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

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

2021年。

回答Ubuntu 20.04 (Focal Fossa)(也可能是其他发行版)。

在四处游荡了几天之后…这些答案对我都没用,我就这么做了,而且成功了!

始终在Bash shell中:

sudo systemctl disable mysql

为了阻止守护进程在启动时启动。

sudo apt purge mysql-server

and

sudo apt purge mysql-community-server*

在那里,它警告你,你将删除配置文件…所以它起作用了!因为他们就是捣乱的人!

sudo autoremove

删除所有遗留的包。

然后重启(也许这是可选的,但我做到了)。 另外,我从MySQL官方网页下载了MySQL -server-8.0:

sudo apt install mysql-server

它正在工作的信号是,当您输入上面的命令时,系统要求您输入根密码。

最后:

mysql -u root -p

还有你之前输入的密码。