如何重置或更改MySQL根密码?
如何在Ubuntu服务器中更改MySQL根密码和用户名? 在设置任何更改之前是否需要停止mysql服务?
我也有一个phpmyadmin设置,将phpmyadmin自动更新?
在Ubuntu Linux上设置/更改/重置MySQL根密码。 在terminal中input以下行。
-
停止MySQL服务器。
sudo /etc/init.d/mysql stop
-
启动mysqldconfiguration。
sudo mysqld --skip-grant-tables &
-
以root身份login到MySQL。
mysql -u root mysql
-
用您的新密码replaceYOURNEWPASSWORD!
UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD')WHERE User ='root'; FLUSH PRIVILEGES; 出口;
注意:此方法不被视为重置密码的最可靠的方法。 然而,它的工作。
参考文献:
- 在Ubuntu Linux上设置/更改/重置MySQL根密码
- 如何重置根密码
官方和简单的方法来重置Ubuntu的服务器上的根密码…
如果你在16.04:
sudo dpkg-reconfigure mysql-server-5.5
如果你在14.04:
sudo dpkg-reconfigure mysql-server-5.5
如果你在12.04:
sudo dpkg-reconfigure mysql-server-5.5
如果你在10.04:
sudo dpkg-reconfigure mysql-server-5.1
如果您不确定安装了哪个mysql服务器版本,您可以尝试:
dpkg --get-selections | grep mysql-server
更新了mysql-server-5.7的注释
请注意,如果您正在使用mysql-server-5.7,则无法使用上面显示的更简单的dpkg-reconfigure方法。
如果您知道密码,请login并运行以下命令:
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root'; FLUSH PRIVILEGES;
或者,您可以使用以下内容:
sudo mysql_secure_installation
这将问你一系列有关保护你的安装的问题(强烈推荐),包括如果你想提供一个新的root密码。
如果您不知道root密码, 请参阅此过程中以Ubuntu为中心的写法 。
查看更多信息:
https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html
我正在分享一步一步的最终解决scheme,在Linux Ubuntu中重置MySQL密码。
从博客引用(dbrnd.com)
第1步:停止MySQL服务。
sudo stop mysql
第2步:杀死所有正在运行的mysqld。
sudo killall -9 mysqld
第3步:在安全模式下启动mysqld。
sudo mysqld_safe --skip-grant-tables --skip-networking &
第4步:启动mysql客户端
mysql -u root
第五步:login成功后,执行该命令更改密码。
FLUSH PRIVILEGES;
第6步:您可以更新mysql root密码。
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
注意 :在MySQL 5.7中,列Password
称为authentication_string
。
第七步:请执行这个命令。
FLUSH PRIVILEGES;
更改MySQL根密码。
这个方法将密码暴露给命令行历史logging,这些命令应该以root身份运行。
-
通过mysql命令行工具login:
mysql -uroot -poldpassword
-
运行这个命令:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
要么
-
运行这个命令,为当前用户设置一个密码(在这种情况下为“root”):
SET PASSWORD = PASSWORD('newpassword');
唯一的方法是我这里描述的(我正在运行的Ubuntu 14.04)。 为了清楚起见,这些是我遵循的步骤:
-
sudo vim /etc/mysql/my.cnf
-
最后join以下几行:
的[mysqld] 跳过赠款表
-
sudo service mysql restart
-
mysql -u root
-
UPDATE mysql.user set password = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
或者在某些系统中,例如:5.7.18你可能想要做的
UPDATE mysql.user SET authentication_string = PASSWORD('password'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost'; FLUSH PRIVILEGES;
供参考: https : //dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
-
exit
-
如果要保持安全标准,请删除第2步中添加的行 。
如果你想改变MySQL的root密码,在terminalinput:
sudo dpkg-reconfigure mysql-server-5.5
MySQL守护进程将被停止,并且会提示您input新的密码。
这就像我为Ubuntu 16.04做的那样。 充分的信贷下面的链接,因为我从那里。 [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts%5D%5B1%5D
停止MySQL
sudo service mysql stop
创buildMySQL服务目录。 sudo mkdir / var / run / mysqld
授予MySQL用户写入服务目录的权限。
sudo chown mysql: /var/run/mysqld
手动启动MySQL,没有权限检查或联网。
sudo mysqld_safe --skip-grant-tables --skip-networking &
无密码login。
mysql -uroot mysql
更新root用户的密码。 请确保atleast根帐户更新由下面的查询。 做一些select,并检查现有的价值,如果你喜欢
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%'; EXIT;
closuresMySQL。
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
正常启动MySQL服务。
sudo service mysql start
什么对我有用(Ubuntu 16.04,MySQL 5.7):
停止MySQL
sudo service mysql stop
创buildMySQL服务目录。
sudo mkdir /var/run/mysqld
授予MySQL用户写入服务目录的权限。
sudo chown mysql: /var/run/mysqld
手动启动MySQL,没有权限检查或联网。
sudo mysqld_safe --skip-grant-tables --skip-networking &
在另一个控制台上,不用密码login。
mysql -uroot mysql
然后:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='%'; EXIT;
closuresMySQL。
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
正常启动MySQL服务。
sudo service mysql start
当您在要更改密码的系统上使用MySQL的PASSWORD()
时,可能会导致密码在MySQL日志中以明文forms显示[ source ]。 保持他们,他们的备份等安全的密码听起来像噩梦对我来说,所以我宁愿这样做,如下所示:
-
在您的本地机器上,使用您的密码运行:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
请注意前面的空格,以防止它在bash历史logging中出现(对于Ubuntu以外的其他发行版,这可能以不同的方式工作 – 来源 )。
-
在您的服务器机器上,执行以下命令更改其MySQL根密码(将第一个命令打印的密码哈希replace为
myhash
):mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
-
可选地,让我们有点偏执:在你的本地机器上,清除你的terminal屏幕并清除虚拟terminal的回滚,以隐藏出现在上面的命令中的明文密码。
如果你知道你当前的密码,你不必停止mysql服务器。 打开ubuntuterminal。 login到MySQL使用:
mysql - username -p
然后input你的密码。 这将带你到MySQL控制台。 在控制台内input:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
然后使用以下命令刷新权
> flush privileges;
那么你们都完成了。
如果您已经设置了phpmyadmin
来连接而不提供密码或用户名,那么在本地机器上就不用重新设置密码了。 通过启动mysql
, apache
等检查了这一点。我已经安装在本地机器xampp
。 因此,启动xampp将启动所有必要的服务。 现在去http://localhost/phpmyadmin
显示我所有的数据库。 这证实你已经在phpmyadmin的configuration文件中保存了用户名和密码,可以在phpmyadmin
安装位置find。 如果安装了xampp
,则可以在xampp
安装的根文件夹中findphpmyadmin
文件夹。 在config.inc.php
文件中searchpassword
。 在那里你会findpassword
和username
。
如果通过提供的phpadmin gui部署在xampp上,您可以轻松更改mysql密码。
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
你可以使用这个命令:
UPDATE mysql.user SET Password = PASSWORD('newpwd')WHERE User ='root';
之后,请求使用冲洗FLUSH特权;
对于MySQL 5.6这个命令的工作,你可以通过向导设置密码:
sudo dpkg-reconfigure mysql-server-5.6
当更改/重置MySQL密码时,上面列出的以下命令不起作用。 我发现进入terminal并使用这些命令是毫无意义的。 而是使用命令sudo stop everything。 删除系统32的窗户,如果有帮助。