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

我该如何修复它并继续?


当前回答

如果其他答案都不适合您,并且您收到了以下错误:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

按照以下命令依次执行,直到重置密码:

# Stop your server first
sudo service mysql stop

# Make the MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

# If you omit (AND Host='localhost') section, it updates
# the root password regardless of its host

FLUSH PRIVILEGES;
EXIT;

# Kill the mysqld_safe process
sudo service mysql restart

# Now you can use your new password to log in to your server
mysql -u root -p

# Take note for remote access. You should create a remote
# user and then grant all privileges to that remote user

其他回答

我使用的是mysql-5.7.12-osx10.11-x86_64。dmg在Mac OS X上。

安装过程会自动为root用户设置一个临时密码。你应该保存密码。密码不可恢复。

按照说明操作:

Go to cd /usr/local/mysql/bin/ Enter the temporary password (which would look something like, "tsO07JF1=>3") You should get the mysql> prompt. Run, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}'); If you wish to set your password: "root" then the command would be, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Run ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; Run exit Run ./mysql -u root -p Type your password. In my case I would type, "root" (without quote) That's all.

为了方便起见,您应该在PATH环境变量中添加“/usr/local/mysql/bin”。

现在你可以在任何地方输入。/mysql -u root -p,然后输入密码,你会得到mysql>提示。

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

/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

我遇到了这个非常烦人的问题,并且找到了许多不管用的答案。我遇到的最好的解决方案是完全卸载MySQL并重新安装。重新安装时,您设置了根密码,这就解决了这个问题。

sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

这段代码是我在其他地方找到的,所以我没有任何功劳。但它确实有效。要在卸载MySQL后安装它,我认为DigitalOcean有一个很好的教程。看看我的要点。

如何在Ubuntu上安装MySQL

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

我所面临的错误是:

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