如何在ubuntu服务器中更改MySQL的root密码和用户名?设置任何更改之前,我需要停止mysql服务吗?
我也有phpmyadmin设置,phpmyadmin会自动更新吗?
如何在ubuntu服务器中更改MySQL的root密码和用户名?设置任何更改之前,我需要停止mysql服务吗?
我也有phpmyadmin设置,phpmyadmin会自动更新吗?
Answers:
在Ubuntu Linux上设置/更改/重置MySQL根密码。在终端中输入以下行。
sudo /etc/init.d/mysql stop
开始mysqld
配置:sudo mysqld --skip-grant-tables &
在某些情况下,您必须创建第/var/run/mysqld
一个:
sudo mkdir -v /var/run/mysqld && sudo chown mysql /var/run/mysqld
sudo service mysql start
mysql -u root mysql
YOURNEWPASSWORD
用您的新密码替换:
UPDATE
mysql.user
SET
Password = PASSWORD('YOURNEWPASSWORD')
WHERE
User = 'root';
FLUSH PRIVILEGES;
exit;
注意:在某些版本中,如果
password
column不存在,则可能要尝试:
UPDATE user SET authentication_string=password('YOURNEWPASSWORD') WHERE user='root';
注意:此方法不被认为是重置密码的最安全方法,但是它可以工作。
参考文献:
sudo killall -9 mysqld
。然后sudo service mysql start
重新启动正常的守护程序...
mkdir /var/run/mysqld
和chown mysql: /var/run/mysqld
步骤1和2之间
唯一适用于我的方法是此处描述的方法(我正在运行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';
-查看顶部以确定密码列是称为
password还是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
在ubuntu服务器上重置根密码的官方简便方法...
如果您使用的是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-server-5.7的注释
请注意,如果使用的是mysql-server-5.7,则不能使用上面显示的更简单的dpkg-reconfigure方法。
如果您知道密码,请登录并运行此命令:
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
Ver 14.14 Distrib 5.5.38, for debian-linux-gnu
sudo dpkg-reconfigure mysql-server-5.0
sudo dpkg-reconfigure mysql-server-5.7; sudo mysql_secure_installation
我将分享逐步的最终解决方案,以在Linux Ubuntu中重置MySQL密码。
步骤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 password。
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
我在使用ubuntu 18.04和mysql 5.7时遇到问题,这是解决方案
在执行命令之前尝试重新启动mysql-server
sudo service mysql restart
MYSQL服务器> = 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服务器<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-SERVER >= 5.7
版本是唯一实际解决问题的东西
MYSQL-SERVER >= 5.7
版本准确。
更改MySQL root密码。
此方法将密码公开给命令行历史记录,这些命令应以root用户身份运行。
通过mysql命令行工具登录:
mysql -uroot -poldpassword
运行以下命令:
SET PASSWORD FOR root@'localhost' = PASSWORD('newpassword');
要么
运行以下命令,为当前用户设置密码(在这种情况下为“ root”):
设置密码=密码('newpassword');
首先运行以下命令:
sudo mysql
然后应检查您的MySQL用户帐户使用哪种身份验证方法。因此请运行此命令
SELECT user,authentication_string,plugin,host FROM mysql.user;
现在您已经可以看到类似的内容:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
在上面的表格中,您可以看到所有mysql用户的帐户状态&如果您mysql_native_password
在插件列中看到之前为root帐户设置了密码auth_socket
。总之,要更改您的root密码,应运行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
确保将密码更改为您选择的强密码。然后,为了重新加载服务器以使新更改生效,请运行此命令;
FLUSH PRIVILEGES;
因此,再次通过以下命令检查您的mysql已采用的身份验证方法:
SELECT user,authentication_string,plugin,host FROM mysql.user;
现在的输出是:
+------------------+-------------------------------------------+-----------------------+-----------+
| user | authentication_string | plugin | host |
+------------------+-------------------------------------------+-----------------------+-----------+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+------------------+-------------------------------------------+-----------------------+-----------+
如您在赠款表中看到的,您的根帐户拥有mysql_native_password
。现在您可以退出MYSQL shell
exit;
就是这样sudo service mysql restart
。只需要通过重启mysql 。现在,您可以使用密码轻松地以root帐户登录mysql。
如果您想更改MySQL的root密码,请在终端中输入:
sudo dpkg-reconfigure mysql-server-5.5
MySQL守护程序将停止,并提示您输入新密码。
sudo dpkg-reconfigure mysql-server-5.7
在Ubuntu 16.04上运行,但没有提示输入新密码。
mysql-server is broken or not fully installed
,一个可以使用sudo apt purge mysql*
和sudo apt install mysql-server
这就像我为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用户的密码。确保通过以下查询至少更新了根帐户。进行一些选择并检查现有值(如果需要)
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 sudo服务mysql stop
制作MySQL服务目录。 须藤mkdir / var / run / mysqld
授予MySQL用户写入服务目录的权限。 须藤chown mysql:/ var / run / mysqld
手动启动MySQL,无需权限检查或联网。 须藤mysqld_safe --skip-grant-tables --skip-networking&
5.不使用密码登录。 mysql -uroot mysql
6.更新root用户的密码。
更新mysql.user SET authentication_string = PASSWORD('YOURNEWPASSWORD'),plugin ='mysql_native_password'WHERE User ='root'AND Host ='%'; 出口;
关闭MySQL。 sudo mysqladmin -S /var/run/mysqld/mysqld.sock关闭
正常启动MySQL服务。 sudo服务mysql启动
UPDATE mysql.user SET authentication_string=PASSWORD('solutionclub3@*^G'), plugin='mysql_native_password' WHERE User='root';
without AND Host='%'
。谢谢!
这是我的解决方案。我在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';
详细信息在这里。
sudo mysql -u root
但能够以身份登录sudo mysql
并运行ALTER USER
命令。
对于Ubuntu 18.04和mysql版本14.14 Distrib 5.7.22,请按照以下步骤重置mysql密码。
sudo systemctl stop mysql
sudo systemctl edit mysql
此命令将在nano编辑器中打开一个新文件,您将使用该文件来编辑MySQL的服务替代。这些更改了MySQL的默认服务参数。该文件将为空,因此添加以下内容:
[Service]
ExecStart=
ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid --skip-grant-tables --skip-networking
sudo systemctl daemon-reload
sudo systemctl start mysql
sudo mysql -u root
FLUSH PRIVILEGES;
UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHEREuser = 'root';
UPDATE mysql.user SET plugin ='mysql_native_password' WHERE user = 'root';
sudo systemctl revert mysql
最后
sudo systemctl restart mysql
现在享受
当您PASSWORD()
在要更改密码的系统上使用MySQL时,它会导致密码以明文[ source ]的形式出现在MySQL日志中。保持它们,其备份等安全性就像密码听起来对我来说就像噩梦一样,所以我更愿意按以下步骤进行操作:
在本地计算机上,使用密码运行此命令:
mysql -u someuser -p < <(echo "SELECT PASSWORD('mypass');")
请注意前面的空间,以防止它出现在bash历史记录中(对于Ubuntu以外的其他发行版,这可能会有所不同-source)。
在服务器计算机上,执行以下命令以更改其MySQL根密码(用myhash
第一个命令打印的密码哈希值代替):
mysql -u root -p < <(echo "SET PASSWORD FOR root@localhost = 'myhash';")
或者,让我们有点偏执:在您的本地计算机上,使用清除您的终端屏幕clear
并清除您的虚拟终端回滚,以隐藏出现在上面命令中的明文密码。
要更新“ root” Mysql用户密码,必须记住,您将需要具有超级用户权限。如果您具有超级用户特权,请尝试以下命令:
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;
关于该主题的大多数答案都已过时。在编写此答案之前,MySQL中发生了两个主要变化:
1-用户表中的“密码”字段已被“身份验证字符串”列替换。
2-不建议使用“密码”加密功能:PASSWORD(“某些文本”)。
请参考此链接以获取更多信息:dev.mysql.com/doc/refman/8.0/en/reset-permissions.html
如果您设置phpmyadmin
为不提供密码或用户名就可以连接,则可以在本地计算机上解决该问题,而不是重置密码。通过启动检查了这一点mysql
,apache
等我已经xampp
安装在我的本地机器。因此,启动xampp将启动所有必要的服务。现在向http://localhost/phpmyadmin
我展示所有数据库。这确认您已将用户名和密码保存在phpmyadmin的配置文件中,该文件位于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 5.6,此命令有效,您可以通过向导设置密码:
sudo dpkg-reconfigure mysql-server-5.6
您可以尝试以下一些步骤来重置mysql 5.7的root密码:
停止Mysql Service 1st
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根密码Ubuntu 16.04
您可以使用以下命令:
UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
之后请使用冲洗:
FLUSH PRIVILEGES;
设置MySQL密码
sudo /etc/init.d/mysql停止
须藤mkdir / var / run / mysqld /
须藤chown mysql / var / run / mysqld /
须藤mysqld_safe --skip-grant-tables&
须藤mysql -u root
使用mysql;
update user set authentication_string=PASSWORD("New_Passwore_Here") where
用户='root';
保存更改
同花顺特权;出口;
停止MySQL safe_mode并启动MySQL默认服务
sudo /etc/init.d/mysql停止
sudo /etc/init.d/mysql启动
须藤mysql -u root -p
***来源:https : //websiteforstudents.com/resetting-mysql-root-password-on-ubuntu-16-04-17-10-and-18-04-lts/
要重置或更改密码,请输入sudo dpkg-reconfigure mysql-server-X.X
(XX是已安装的mysql版本,即5.6、5.7),然后将提示您设置新密码的屏幕,然后在下一步中确认密码,请稍等片刻。而已。
我必须在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
然后:
运行mysql_secure_installation的/ usr / bin / mysql_secure_installation
输出
root @ myServer:〜#/ usr / bin / mysql_secure_installation
保护MySQL服务器部署。
输入root用户密码:
验证密码插件可用于测试密码并提高安全性。它检查密码的强度,并允许用户仅设置足够安全的密码。您要设置“验证密码”插件吗?
按y | Y表示是,按其他任何键表示否:否使用现有密码作为root用户。更改root的密码?((按y | Y表示是,按其他任何键表示否):y
新密码:
重新输入新密码:默认情况下,MySQL安装有一个匿名用户,允许任何人登录MySQL,而不必为其创建用户帐户。这仅用于测试,以使安装过程更加顺利。在移入生产环境之前,应先删除它们。
删除匿名用户?(按y | Y表示是,按其他任何键表示否):y成功。
通常,仅应允许root从'localhost'连接。这样可以确保某人无法猜测网络中的root密码。
禁止远程root登录?(按y | Y表示是,按其他任何键表示否):y成功。
默认情况下,MySQL带有一个名为“ test”的数据库,任何人都可以访问。这也仅用于测试,应在移入生产环境之前将其删除。
删除测试数据库并访问它?(按y | Y表示是,按其他任何键表示否):y
删除测试数据库...成功。
删除测试数据库的特权...成功。
重新加载特权表将确保到目前为止所做的所有更改将立即生效。
现在重新加载特权表?(按y | Y表示是,按其他任何键表示否):y成功。
全做完了!