如何更改在Ubuntu服务器的MySQL的root用户名和密码? 我是否需要设置任何更改之前停止MySQL的服务?
我有一个phpmyadmin的设置,以及将phpMyAdmin的获得自动更新?
如何更改在Ubuntu服务器的MySQL的root用户名和密码? 我是否需要设置任何更改之前停止MySQL的服务?
我有一个phpmyadmin的设置,以及将phpMyAdmin的获得自动更新?
设置/变更/重置在Ubuntu Linux的MySQL root密码。 在终端中输入以下行。
sudo /etc/init.d/mysql stop
sudo mysqld --skip-grant-tables &
mysql -u root mysql
更换YOURNEWPASSWORD
使用新密码:
UPDATE mysql.user SET Password = PASSWORD('YOURNEWPASSWORD') WHERE User = 'root'; FLUSH PRIVILEGES; exit;
注:在某些版本中,如果
password
栏不存在,你可能也想尝试:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
注意:这个方法是不被视为重置密码的最安全的方式,但是,它的工作原理。
参考文献:
官方和简单的方法来一个Ubuntu服务器上重新设置root的密码...
如果你是在16.04,14.04,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的服务器- 5.7
请注意,如果你正在使用MySQL服务器-5.7则不能使用上面显示的更容易的dpkg-重新配置方法。
如果你知道密码,登录,运行以下命令:
UPDATE mysql.user SET authentication_string=PASSWORD('my-new-password') WHERE USER='root';
FLUSH PRIVILEGES;
另外,您也可以使用以下命令:
sudo mysql_secure_installation
如果你想提供一个新的超级用户口令这会问你一系列有关保护安装(强烈推荐),包括提问。
如果你不知道root密码, 是指在该过程中Ubuntu的中心写了 。
详情参见:
https://help.ubuntu.com/16.04/serverguide/mysql.html https://help.ubuntu.com/14.04/serverguide/mysql.html
只为我工作的方法是描述一个在这里 (我运行Ubuntu 14.04)。 为了清楚起见,这些都是我遵循的步骤:
sudo vim /etc/mysql/my.cnf
添加以下行结尾:
的[mysqld] 跳过赠款表
sudo service mysql restart
mysql -u root
use mysql
select * from mysql.user where user = 'root';
-顶一下,以确定密码是否列被称为密码或authentication_string
UPDATE mysql.user set *password_field from above* = PASSWORD('your_new_password') where user = 'root' and host = 'localhost';
- 使用从上面正确的密码列
FLUSH PRIVILEGES;
exit
sudo vim /etc/mysql/my.cnf
如果你想保持你的安全标准删除在步骤2中添加的行 。
sudo service mysql restart
供参考: https://dev.mysql.com/doc/refman/5.7/en/resetting-permissions.html
我分享一步步最终解决复位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
第5步:登录成功后,请执行此命令更改任何密码。
FLUSH PRIVILEGES;
第6步:您可以更新MySQL root密码。
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
注 :在MySQL 5.7,列Password
被称为authentication_string
。
第7步:请执行此命令。
FLUSH PRIVILEGES;
什么工作对我来说(Ubuntu的16.04时,MySQL 5.7):
停止MySQL的
sudo service mysql stop
使MySQL服务目录。
sudo mkdir /var/run/mysqld
给MySQL来写服务目录用户权限。
sudo chown mysql: /var/run/mysqld
手动启动mysql,擅自检查或联网。
sudo mysqld_safe --skip-grant-tables --skip-networking &
在另一个控制台中,无需输入密码。
mysql -uroot mysql
然后:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
EXIT;
关闭MySQL的。
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
正常启动MySQL服务。
sudo service mysql start
更改MySQL root密码。
此方法公开口令到命令行历史,这些命令应该运行为根。
通过mysql命令行工具的登录:
mysql -uroot -poldpassword
运行此命令:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
要么
运行此命令,它设定为当前用户(“根”为这种情况下)的密码:
SET PASSWORD = PASSWORD( '新密码');
我面临的问题与Ubuntu 18.04和MySQL 5.7,这是解决方案
MYSQL-SERVER> = 5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET authentication_string=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
MYSQL-SERVER <5.7
sudo mysql -uroot -p
USE mysql;
UPDATE user SET password=PASSWORD('YOUR_PASSWORD') WHERE User='root';
UPDATE user SET plugin="mysql_native_password";
FLUSH PRIVILEGES;
quit;
如果你想改变MySQL的root密码,在终端中输入:
sudo dpkg-reconfigure mysql-server-5.5
MySQL守护程序将停止,你会被提示输入新的密码。
这就像魅力,我做到了对Ubuntu 16.04。 完全学分制下面的链接,因为我得到了它从那里。 [ https://coderwall.com/p/j9btlg/reset-the-mysql-5-7-root-password-in-ubuntu-16-04-lts][1]
停止MySQL的
sudo service mysql stop
使MySQL服务目录。 须藤的mkdir / var / run中/ mysqld的
给MySQL来写服务目录用户权限。
sudo chown mysql: /var/run/mysqld
手动启动mysql,擅自检查或联网。
sudo mysqld_safe --skip-grant-tables --skip-networking &
登录无需输入密码。
mysql -uroot mysql
更新root用户的密码。 确保在ATLEAST root帐户被通过下面的查询更新。 做出一些选择和检查现有的值,如果你喜欢
UPDATE mysql.user SET
authentication_string=PASSWORD('YOURNEWPASSWORD'),
plugin='mysql_native_password' WHERE User='root';
EXIT;
关闭MySQL的。
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
正常启动MySQL服务。
sudo service mysql start
停止MySQL的须藤服务mysql的停止
使MySQL服务目录。 须藤的mkdir / var / run中/ mysqld的
给MySQL来写服务目录用户权限。 须藤CHOWN MySQL的:/ var / run中/ mysqld的
手动启动mysql,擅自检查或联网。 须藤mysqld_safe的--skip-赠款表--skip-联网&
5.Log在没有密码的情况。 MySQL的MySQL的-uroot
6.Update根用户的密码。
更新mysql.user设置authentication_string = PASSWORD( 'YOURNEWPASSWORD'),插件= 'mysql_native_password' WHERE用户= '根'和主机= '%'; 出口;
关闭MySQL的。 须藤中mysqladmin -S /var/run/mysqld/mysqld.sock关机
正常启动MySQL服务。 sudo的服务mysql的开始
这是我的解决方案。 我在Ubuntu的18.04工作: https://stackoverflow.com/a/46076838/2400373
但是,重要的是这种变化的最后一步:
UPDATE mysql.user SET authentication_string=PASSWORD('YOURNEWPASSWORD'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';
该解决方案属于以前版本的MySQL。 通过使用插座认证登录到MySQL,你可以做到这一点。
sudo mysql -u root
然后下面的命令可以运行。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
详情请点击这里 。
呼应rogerdpack的评论:如果你不知道MySQL的root密码,你不关心MySQL数据/设置,就可以重新安装和重新设置root的密码,如下所示:
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo rm -rf /var/lib/mysql
sudo apt-get install -y mysql-server mysql-client
在安装过程中,您可以选择root的密码:
如果你知道你的当前密码,您不必停止MySQL服务器。 打开ubuntu的终端。 登录使用到mysql:
mysql - username -p
然后输入您的密码。 这将带您进入MySQL控制台。 里面的控制台,输入:
> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
然后用冲洗特权:
> flush privileges;
然后,你都做。
当你使用MySQL的PASSWORD()
要更改密码的系统上,它可能会导致密码打开了在MySQL日志中明文[ 来源 ]。 让他们,他们的备份等,为安全的密码听起来像是噩梦给我,所以我比较喜欢做它,如下所示:
在您的本地机器上 ,你的密码运行以下命令:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
注意前面的空间,以防止它在bash的历史(在其他版本的Ubuntu相比,这可能会有所改变-转向了源 )。
在你的服务器上,执行以下命令来改变它的MySQL root密码(更换myhash
你的密码的哈希值由第一个命令为印刷):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
或者,让我们的是一个有点偏执:在您的本地机器上,清除终端屏幕, clear
和清除您的虚拟终端回溯,隐藏出现在上面的命令中的明文密码。
要更新的“根” mysql用户密码,您必须记住,你将需要为超级用户的权限。 如果你有超级用户privilegies,请尝试以下命令:
MySQL的5.7.6和以后
sudo su
service mysql stop
mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
\q;
exit
mysql -u root -p MyNewPass
MySQL的5.7.5及更早版本
sudo su
service mysql stop
mysql -u root
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
\q;
exit
mysql -u root -p MyNewPass
你并不需要这一切。 只需登录:
mysql -u root -p
然后,改变当前用户的密码作为mysql>
提示符下:
mysql> set password=password('the_new_password');
mysql> flush privileges;
相反,重置密码有一个解决办法,如果你已经安装在本地计算机上phpmyadmin
无需提供密码或用户名进行连接。 通过启动检查了这一点mysql
, apache
等等。我已经xampp
安装在我的本地机器。 所以,在开始XAMPP将启动所有必要的服务。 现在去http://localhost/phpmyadmin
展示我所有的数据库。 这证实了已保存在可以在找到的phpmyadmin的config文件中的用户名和密码时应phpmyadmin
安装位置。 如果您有xampp
安装phpmyadmin
文件夹可在根文件夹中找到xampp
安装。 搜索单词password
中config.inc.php
文件。 在那里,你会发现password
和username
。
如果部署通过提供phpadmin GUI XAMPP您可以轻松地更改MySQL密码。
phpMyAdmin -> User Accounts -> Edit Privileges (Select the intended user) -> Change Password (Tab)
您可以使用此命令:
更新mysql.user设置密码= PASSWORD( 'NEWPWD')WHERE用户= '根';
之后的请求使用冲洗FLUSH PRIVILEGES;
为MySQL 5.6这个命令的作品,你可以通过向导设置密码:
sudo dpkg-reconfigure mysql-server-5.6
您可以尝试以下一些步骤来重置的MySQL 5.7 root的密码:
停止MySQL服务1
sudo /etc/init.d/mysql stop
以root身份登录,没有密码sudo mysqld_safe --skip-grant-tables
&
登录MySQL的终端后,如果您需要执行命令更多:
use mysql;
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
flush privileges;
sudo mysqladmin -S /var/run/mysqld/mysqld.sock shutdown
重新启动你的mysql服务器之后如果仍然面临着错误你必须访问: 重置MySQL的5.7 root密码的Ubuntu 16.04
当改变/重置密码的MySQL上面列出以下命令并没有帮助。 我发现,进入终端,并使用这些命令是没有意义的。 而是使用命令sudo停止一切。 删除系统32窗户是否有帮助。
要重置或更改密码输入sudo dpkg-reconfigure mysql-server-XX
(XX是你已经安装了IE 5.6,5.7 MySQL版本),然后,你必须设置新密码,然后在下一步确认您会提示屏幕该密码,只要稍等片刻。 而已。
我不得不去在Ubuntu 16.04.1 LTS这条路线。 这是上面的一些其他答案的混合有点 - 但他们没有帮助。 我花了一个多小时试图从MySQL网站上的所有其他建议的一切对SO,我终于得到了它的工作:
注意:当它显示root用户输入密码,我没有原来的密码,所以我刚刚进入被用作新的密码相同的密码。
注:没有/var/log/mysqld.log只/var/log/mysql/error.log
还要注意这对我来说没有工作:
sudo dpkg-reconfigure mysql-server-5.7
也没有:
sudo dpkg-reconfigure --force mysql-server-5.5
使MySQL服务目录。
sudo mkdir /var/run/mysqld
给MySQL来写服务目录用户权限。
sudo chown mysql: /var/run/mysqld
然后:
运行/ usr / bin中/ mysql_secure_installation
从mysql_secure_installation输出
根@ myServer上:〜#在/ usr / bin中/ mysql_secure_installation
保护MySQL服务器的部署。
输入用户root的密码:
VALIDATE密码插件可以用来测试密码和提高安全性。 它检查密码的强度,并允许用户设置只有那些有足够安全的密码。 你想设置VALIDATE密码插件?
按y | Y的是,任何其他键编号:根没有使用现有的密码。 更改根密码? ((按y | Y的是,因为没有任何其他键):Y
新密码:
重新输入新密码:默认情况下,MySQL安装有一个匿名用户,允许任何人登录到MySQL,而不必对他们创建的用户帐户。 这是仅用于测试,使安装去更加顺畅。 移动到生产环境之前,您应该删除它们。
删除匿名用户? (按y | Y的是,因为没有任何其他键):Y成功。
通常情况下,根应该只允许从“localhost”的连接。 这将确保其他人无法从网络root密码猜测。
远程不允许root登录? (按y | Y的是,因为没有任何其他键):Y成功。
默认情况下,MySQL带有一个名为“测试”,任何人都可以访问数据库。 这也仅用于测试,并且应该移动到生产环境之前被删除。
删除测试数据库和访问它? (按y | Y的是,因为没有任何其他键):Y
删除测试数据库......成功。
拆卸测试数据库权限...成功。
重装授权表将确保迄今为止进行的所有更改会立即生效。
现在刷新授权表? (按y | Y的是,因为没有任何其他键):Y成功。
全部完成!
作为对MySQL文档PASSWORD()函数表示:
在MySQL 8.0.11,删除了此功能。
这种无效相当多的MySQL v8.0.11及更新现有的所有答案。
每mysql的文档重新设置root密码新的通用方法如下:
在前面的章节提供专门针对Windows和Unix和类Unix系统密码复位指令。 或者,在任何平台上,你可以使用mysql客户端(但这种做法的安全性较低),重置密码:
如果必要的话停止MySQL服务器,然后使用--skip-grant-tables选项重启。 这使得任何人都可以不用密码,并与所有的权限进行连接,并禁用账户管理语句,例如ALTER USER和设置密码。 因为这是不安全的,如果服务器开始使用--skip-grant-tables选项,它使--skip-联网自动阻止远程连接。
连接到使用mysql客户端的MySQL服务器; 因为服务器开始用--skip-赠款表不需要密码:
shell> mysql
在MySQL客户端,告诉服务器重载授权表,使帐户管理报表工作:
mysql> FLUSH PRIVILEGES;
然后改变“根” @“localhost”的帐户密码。 替换为您要使用的密码。 要为root帐户有不同的主机名部分修改密码,修改说明使用该主机名。
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';
您现在应该能够连接到MySQL服务器使用新密码的根。 停止服务器并正常重新启动它(不使用--skip-grant-表和--skip-网络选项)。
更改MySQL root密码。 在更简单的方法
所有这些命令必须以root身份运行。
使用旧密码,通过MySQL命令行工具登录:
步骤1
mysql -uroot -p"your_old_password"
然后下面的命令来运行:
第2步
SET PASSWORD FOR root@'localhost' = PASSWORD('your_new_password');
方法2(使用使用上面的命令旧密码初次登录)
运行此命令,将当前用户的密码:
SET PASSWORD = PASSWORD('your_new_password');
上面的命令是当前用户。 如果要更改其他用户的密码,就可以把用户名,而不是“根”。