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

我该如何修复它并继续?


当前回答

我也遇到过类似的问题:

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

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

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

其他回答

我使用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的习惯。

如果问题仍然存在,请尝试强制修改密码:

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

设置新的MySQL root用户密码:

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

停止MySQL服务器:

/etc/init.d/mysql stop

启动MySQL服务器并测试它:

mysql -u root -p

我所面临的错误是:

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

这是一个端口运行的问题。

默认情况下,MySQL运行在3306端口上。

你可以通过运行来检查

在32位系统中: sudo / opt / lampp / manager-linux.run 在64位系统中: sudo / opt / lampp / manager-linux-x64.run

然后点击Configure按钮。

在我的示例中,端口运行在3307上,我使用了该命令

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

我在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

在最近的MySQL版本中,MySQL中没有任何密码。用户表。

所以你需要执行ALTER USER。将这一行命令放入文件中。

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

并以init文件的形式执行(以root或mysql用户):

mysqld_safe --init-file=/home/me/mysql-init &

MySQL服务器需要停止才能启动mysqld_safe。

另外,加载这个init文件的AppArmor权限可能也有问题。阅读更多在AppArmor和MySQL。