我一直在按照手册在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作为Docker镜像的一部分(比如在6606端口上),而Ubuntu安装(在3306端口上),指定端口是不够的:

mysql -u root -p -P 6606

将把:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

因为默认情况下它试图连接到localhost,指定您的本地IP地址可以修复这个问题:

mysql -u root -p -P 6606 -h 127.0.0.1

其他回答

我使用Ubuntu 16.04 (Xenial Xerus)和安装MySQL 5.7。

我也有同样的问题

禁止root用户登录。

我尝试了以下步骤:

get-select | grep mysql(获取mysql版本)。 dpkg-reconfigure mysql -服务器- 5.7 Mysql -u root -p

如果没有-p,则不会提示您询问密码。进入后,您可以按照以下步骤创建一个带有密码的用户:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

从根目录退出,从上面给出的<name>登录。

mysql -u <your_new_username> -p

由于某种原因,仍然不能输入MySQL。在所有。我建议养成使用mysql -u <name> -p的习惯。

注意:对于MySQL 5.7+,请参见Lahiru对这个问题的回答。这包含了更多的最新信息。

对于MySQL < 5.7:

默认root密码为空(即空字符串),而不是root。所以你可以登录为:

mysql -u root

安装完成后,您显然应该更改root密码:

mysqladmin -u root password [newpassword]

在大多数情况下,您还应该在广泛使用数据库之前设置个人用户帐户。

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

mysql -u root -p

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

还有你之前输入的密码。

在我的情况下,我发现我的根密码在日志文件“mysqld.log”,路径“/var/log”。

在我运行命令“mysql -u root -p”后,我输入我的root密码,我在/var/log/mysql .log中找到。