我一直在按照手册在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)
我该如何修复它并继续?
对于那些目前的答案不工作的人,可以试试这个(在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 |
+-----------+------------------+
从这里你可以改变配置,编辑密码或修改拨款。
你必须重设密码!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';
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
还有你之前输入的密码。