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

我该如何修复它并继续?


当前回答

你必须重设密码!Mac OS X(已测试并正在运行)和Ubuntu的步骤:

停止使用MySQL

sudo service mysql stop

or

sudo /usr/local/mysql/support-files/mysql.server stop

以安全模式启动:

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

(上面一行是整个命令)

这将是一个持续的命令,直到进程结束,所以打开另一个shell/终端窗口,登录没有密码:

mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

根据@IberoMedia的评论,对于新版本的MySQL,该字段被称为authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

启动MySQL使用:

sudo service mysql start

or

sudo /usr/local/mysql/support-files/mysql.server start

你的新密码是“password”。

注意:对于MySQL > 5.7版本,请尝试以下操作:

update mysql.user set authentication_string='password' where user='root';

其他回答

我知道已经很晚了。 我在弹簧引导应用程序中遇到了这个问题。

我通过使用默认值解决了这个问题,让我解释一下。

当我使用hibernate时,我使用了这个属性

<物业name =“连接用户。root > < /物业>

即connection.user

现在,我尝试在spring-boot应用程序中使用相同的方法。

spring.datasource.user

我得到这个错误。

解决方案是 spring.datasource.username

你必须重设密码!Mac OS X(已测试并正在运行)和Ubuntu的步骤:

停止使用MySQL

sudo service mysql stop

or

sudo /usr/local/mysql/support-files/mysql.server stop

以安全模式启动:

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

(上面一行是整个命令)

这将是一个持续的命令,直到进程结束,所以打开另一个shell/终端窗口,登录没有密码:

mysql -u root

mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

根据@IberoMedia的评论,对于新版本的MySQL,该字段被称为authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

启动MySQL使用:

sudo service mysql start

or

sudo /usr/local/mysql/support-files/mysql.server start

你的新密码是“password”。

注意:对于MySQL > 5.7版本,请尝试以下操作:

update mysql.user set authentication_string='password' where user='root';

在我的情况下,我试图传递一个shell命令到docker容器。在这种情况下,只有第一个词被解释。确保你没有在运行:

mysql

相对于:

mysql -uroot -ppassword schemaname

也许可以试着引用:

'mysql -uroot -ppassword schemaname'

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

对于MySQL < 5.7:

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

mysql -u root

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

mysqladmin -u root password [newpassword]

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

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

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