我将root用户从我们的数据库中锁定.我需要将所有权限都返回给root用户.我有密码,我可以登录MySQL.但是root用户没有所有权限.
ton*_*and 41
我遇到了与这个问题的标题相同的问题,所以请其他任何人搜索这个问题,并希望在Windows上以'skip-grant-tables'模式启动MySql,这就是我所做的.
通过管理员工具,服务停止MySQL服务.
修改my.ini配置文件(假设默认路径)
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
Run Code Online (Sandbox Code Playgroud)
或者对于MySQL版本> = 5.6
C:\ProgramData\MySQL\MySQL Server 5.6\my.ini
Run Code Online (Sandbox Code Playgroud)
在SERVER SECTION中,在[mysqld]下,添加以下行:
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
所以你有
# SERVER SECTION
# ----------------------------------------------------------------------
#
# The following options will be read by the MySQL Server. Make sure that
# you have installed the server correctly (see above) so it reads this
# file.
#
[mysqld]
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)
再次启动服务,您应该能够在没有密码的情况下登录数据库.
小智 34
如何重新控制MySQL中的root用户.
危险:危险的操作
my.cnf使用编辑文件.
sudo vi /etc/my.cnf
Run Code Online (Sandbox Code Playgroud)添加到mysqld块的行.*
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)保存并退出.
重启MySQL服务.
service mysql restart
Run Code Online (Sandbox Code Playgroud)检查服务状态.
service mysql status
Run Code Online (Sandbox Code Playgroud)连接到mysql.
mysql
Run Code Online (Sandbox Code Playgroud)使用主数据库.
use mysql;
Run Code Online (Sandbox Code Playgroud)重新定义用户root密码.
UPDATE user SET `authentication_string` = PASSWORD('myNuevoPassword') WHERE `User` = 'root';
Run Code Online (Sandbox Code Playgroud)编辑文件my.cnf.
sudo vi /etc/my.cnf
Run Code Online (Sandbox Code Playgroud)擦除线.
skip-grant-tables
Run Code Online (Sandbox Code Playgroud)保存并退出.
重启MySQL服务.
service mysqld restart
Run Code Online (Sandbox Code Playgroud)检查服务状态.
service mysql status
Run Code Online (Sandbox Code Playgroud)连接数据库.
mysql -u root -p
Run Code Online (Sandbox Code Playgroud)出现提示时键入新密码.
此操作非常危险,它允许任何人在没有用户和密码的情况下无限制地连接到所有数据库.必须小心使用,必须尽快恢复以避免风险.
在 Linux 系统上,您可以执行以下操作(其他操作系统应该类似)
检查mysql进程是否正在运行:
sudo service mysql status
Run Code Online (Sandbox Code Playgroud)
如果正在运行,则停止该进程:(确保关闭所有 mysql 工具)
sudo service mysql stop
Run Code Online (Sandbox Code Playgroud)
如果您遇到问题停止,请执行以下操作
搜索进程:ps aux | grep mysqld
杀死进程:kill -9 process_id
现在使用跳过授权以安全模式启动 mysql
sudo mysqld_safe --skip-grant-tables &
Run Code Online (Sandbox Code Playgroud)
经过尝试很多事情之后,这对我有用:
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';
Run Code Online (Sandbox Code Playgroud)
因此,首先我们使用sudo以root身份登录mysql,而无需输入密码。然后,我们只更新root的密码。
之后,我重新启动mysqld:
sudo service mysql restart
Run Code Online (Sandbox Code Playgroud)
和newpassword登录的根!
小智 5
我在 Windows 10 中,使用 WAMP64 服务器。搜索了my.cnf和my.ini。my.ini在发现C:\wamp64\bin\mariadb\mariadb10.2.14。
按照同事的指示:
my.ini,搜索[mysqld]'skip-grant-tables'在该部分的末尾[mysqld](但在其中)skip-grant-tables选项的警告ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'newpassword';my.ini文件中,删除该'skip-grant-tables'行,保存文件现在您可以使用新密码输入。感谢这里的所有答案。
如果这是一个Windows机器,最简单的方法就是停止服务器,将skip-grant-tables添加到mysql配置文件中,然后重新启动服务器。
解决权限问题后,请重复上述操作,但删除“skip-grant-tables”选项。
如果您不知道配置文件在哪里,请登录 mysql send SHOW VARIABLES LIKE '%config%',返回的其中一行将告诉您配置文件在哪里。
| 归档时间: |
|
| 查看次数: |
194949 次 |
| 最近记录: |