我无法弄清楚MySQL的root密码。我怎么能找到这个?该密码是否存储在任何文件中?
我正在跟踪此链接,但是我在本地没有directadmin目录。
我无法弄清楚MySQL的root密码。我怎么能找到这个?该密码是否存储在任何文件中?
我正在跟踪此链接,但是我在本地没有directadmin目录。
Answers:
感谢@thusharaK,我可以在不知道旧密码的情况下重置root密码。
在ubuntu上,我执行了以下操作:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
然后在新的终端上运行mysql:
mysql -u root
并运行以下查询来更改密码:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
在MySQL 5.7中,删除了mysql.user表字段中的password字段,现在该字段名称为'authentication_string'。
退出mysql安全模式并通过以下方式启动mysql服务:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
和新密码一起使用。
mysql -u root
。它显示了错误Access denied
您无法查看哈希密码;您唯一可以做的就是重设它!
停止MySQL:
sudo service mysql stop
要么
$ sudo /usr/local/mysql/support-files/mysql.server stop
以安全模式启动它:
$ sudo mysqld_safe --skip-grant-tables
(以上是整个命令)
这将是一个持续执行的命令,直到该过程完成为止,因此打开另一个Shell /终端窗口,无需密码即可登录:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7及更高版本:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
启动MySQL:
sudo mysql start
要么
sudo /usr/local/mysql/support-files/mysql.server start
您的新密码是“密码”。
mysql_secure_installation
根本不再合作。该authentication_string
设置有什么作用?
mysqladmin -u root -p shutdown
使用新密码,然后sudo service mysql start
MySQL 5.7及更高版本将root保存在MySQL日志文件中。
请尝试以下方法:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
包含有关root密码为空的警告-因此,这种方式挽救了我的一天:)
一件事使我不禁尝试了新安装的mySQL,想知道为什么我无法使用默认密码,以及为什么连复位方法都不起作用。事实证明,在Ubuntu 18上,默认情况下,最新版本的mysql服务器对根用户完全不使用密码身份验证。因此,这意味着无论您将其设置为什么,都不会让您使用它。期望您从特权套接字登录。所以
mysql -u root -p
即使您使用正确的密码,也将根本无法使用!!!无论您输入什么内容,它都会拒绝访问。
相反,您需要使用
sudo mysql
无需输入任何密码即可使用。然后,一旦您需要输入
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
然后注销,现在这血腥的事情最终将接受您的密码
你找不到它。它存储在数据库中,您需要输入根密码才能访问该数据库,即使您确实以某种方式获得了访问权限,也会使用单向哈希将其哈希。您可以重置它:http : //dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
请按照以下步骤在Windows系统中重置密码
从任务管理器停止Mysql服务
创建一个文本文件并粘贴以下语句
MySQL 5.7.5及更早版本:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6及更高版本:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
另存为mysql-init.txt
并将其放入'C' drive
。
打开命令提示符并粘贴以下内容
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
。我SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
在/root/m.txt中
除非程序包管理器要求您在安装过程中键入root密码,否则默认的root密码为空字符串。要连接到新安装的服务器,请键入:
shell> mysql -u root --password=
mysql>
要更改密码,请返回unix shell并键入:
shell> mysqladmin -u root --password= password root
新密码是“ root”。现在连接到服务器:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
糟糕,密码已更改。使用新的root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
答对了!新做一些有趣的事情
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
莫里西
该过程根据MySql的版本而改变。完全按照您的版本描述的步骤进行操作:
提示-请先阅读您的MySql *版本的说明页面
在步骤5:中,而不是运行CMD,而是在桌面上创建一个调用CDM.exe的快捷方式。然后右键单击快捷方式,然后选择“以管理员身份执行”。
在第6步:跳过命令的第一个建议版本,并执行第二个命令,该命令带有--defaults-file参数
一旦执行了命令,如果一切正常,则CMD窗口将保持打开状态,并继续执行步骤6的命令。只需关闭窗口(单击“ x”),然后从任务管理器中强制关闭MySQl。
使用SQL命令删除文件,然后重新启动MySQL。现在必须更改密码。
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
...只需更改链接中的版本(5.5、5.6、5.7)
这里提供的答案似乎对我不起作用,窍门竟然是:ALTER USER'root'@'localhost'用mysql_native_password通过'test'标识;
(完整的答案在这里:https : //www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/)
系统:
程序:
打开两个Shell会话,以Linux超级用户身份登录到一个,并以非root用户身份登录另一个,并可以访问该mysql
命令。
在您的根会话中,停止普通的mysqld侦听器并启动一个绕过密码身份验证的侦听器(注意:这是一个重大的安全隐患,因为任何有权访问该mysql
命令的人都可以不使用密码来访问数据库。您可能要关闭活动的Shell会话和/或在执行此操作之前禁用外壳程序访问):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
在您的非root会话中,登录mysql并设置mysql root密码:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
在您的根会话中,杀死无密码的mysqld实例并将正常的mysqld侦听器恢复为服务:
# kill %1
# systemctl start mysqld
在您的非root用户会话中,测试您在上面配置的新root用户密码:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
我以另一种方式解决了这个问题,这对某些人来说可能更容易。
我这样做是因为我尝试以安全模式启动,但无法连接错误:ERROR 2002(HY000):无法通过套接字'/var/run/mysqld/mysqld.sock'(2)连接到本地MySQL服务器
我所做的是以root身份正常连接:
$ sudo mysql -u root
然后,我创建了一个新的超级用户:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
然后以myuser身份登录
$ mysql -u myuser -p -h localhost
尝试更改密码没有给我任何错误,但对我却没有做任何事情,因此我删除并重新创建了root用户
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
现在,root用户正在使用新密码