我是Ubuntu Server
的新手,我做了命令:
sudo apt-get install mysql-server mysql-common mysql-client
一切顺利,我被带回命令行。当我输入:
mysql -u root
我收到错误Access denied for user 'root'@'localhost' (using password: NO)
。我做错了什么想法?我已经尝试删除所有3个包并重新安装它们无济于事。谷歌没有得到任何帮助:(
答案 0 :(得分:6)
打开终端并运行sudo dpkg-reconfigure mysql-server
为mysql提供新密码
mysql -uroot -p
,提供新创建的密码
注意:您可能必须在第一个命令中添加mysql版本例如:dpkg-reconfigure mysqlserver-4.3
答案 1 :(得分:2)
一种方法是
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql
然后您将登录到mysql,输入以下内容:
use mysql;
update user set password='*6C8989366EAF75BB670AD8EA7A7FC1176A95CEF4' where User='root';
flush privileges;
在此之后,停止mysql,并启动为普通的
/etc/init.d/mysql stop
/etc/init.d/mysql start
mysql -u root -p
您的密码应为: mypass
答案 2 :(得分:2)
对于较新版本的MySQL(对于MariaDB< 10.2使用底部的查询,因为它不支持更改用户但仍使用auth_socket)
如果您安装了5.7并且没有为
root
用户提供密码,那么 将使用auth_socket
插件。该插件并不关心 不需要密码。它只是检查用户是否正在连接 使用UNIX套接字,然后比较用户名。
取自Change User Password in MySQL 5.7 With "plugin: auth_socket"和https://askubuntu.com/a/801950/395418
因此,为了将plugin
更改回mysql_native_password
:
使用sudo登录:
sudo mysql -u root
更改plugin
并使用单个命令设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
当然您也可以使用上面的命令设置一个空密码。
只是为了记录,还有另一种方法只更改plugin
而不提供密码(将其留空):
update mysql.user set plugin = 'mysql_native_password' where User='root';
FLUSH PRIVILEGES;
答案 3 :(得分:1)
在重置密码之前,请尝试:
mysql -u root -p
在此之后你必须写下你的密码(不要担心,如果你没有看到*这是正常的)并按下返回按钮。
答案 4 :(得分:1)
在 mysql 5.7.12
上测试/etc/init.d/mysql stop
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
/usr/local/mysql/bin/mysql
然后从打开的sql控制台输入以下命令:
UPDATE mysql.user
SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
WHERE User = 'root' AND Host = 'localhost';
FLUSH PRIVILEGES;
exit;
停止当前进程并再次启动它。 然后测试新密码(应该是 MyNewPass )。
/etc/init.d/mysql stop
/etc/init.d/mysql start
/usr/local/mysql/bin/mysql -u root -p
答案 5 :(得分:0)
您需要设置MySQL
$ mysqladmin -u root password NEWPASSWORD
答案 6 :(得分:0)
要设置忘记密码,您需要停止mysql守护程序,使用--skip-grant-tables
选项启动它,然后使用mysqladmin -u root password NEWPASSWORD
更改当前密码。
您可以找到完整的密码重置程序here。