mysql用alter修改root密码_MySQL系列-修改root密码

linux中mysql忘记root密码如何登陆

1.关闭mysql服务

systemctl stop mysqld

netstat-tunlp|grep mysqld

2.进入配置文件添加一条命令

[mysqld]

skip-grant-tables #以安全模式启动

3.重新启动服务

systemctl start mysqld

4.无密码模式登陆

mysql -uroot

5. 5.7版本以后password字段没有,更改为authentication_string

show databases;

use mysql;

show tables;

desc user;

update mysql.user set authentication_string=password('xxx') where user='root' ;

flush privileges;

6.修改完毕后将配置文件中添加的语句注释掉,并重启服务

vim /etc/my.cnf

#skip-grant-tables

systemctl restart mysqld

7.新密码重新登陆后出现问题

show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

#意思是必须使用alter user命令重新设置密码

mysql> alter user root@localhost identified by 'XXXXXX';

flush privileges;

MySQL中,你需要通过SSH登录到服务器,并非直接在命令行界面执行ALTER TABLE命令来修改root用户的密码。因为MySQL root用户密码是存储在系统文件`my.cnf`(Windows下通常是`my.ini`)或环境变量中的,而不是数据库表里。 以下是修改MySQL root用户密码的基本步骤: 1. **停止MySQL服务** (如果正在运行): - 对于Linux: `sudo service mysql stop` - 对于Windows: `net stop MySQL` 2. **编辑配置文件** (`my.cnf` or `my.ini`): 打开权限限制的文本编辑器(如`vim`, `nano`, 或者`notepad++`),找到`[mysqld]`部分,查找`password`或`skip-grant-tables`等与密码相关的设置,然后添加新的密码。例如: ``` [mysqld] # 原始密码行: # password = old_password password = new_password ``` 3. **重启MySQL服务** 并指定新密码: - 对于Linux: `sudo service mysql start --skip-grant-tables` - 对于Windows: `net start MySQL /force` 4. **更改密码** (现在可以无权限访问): 使用以下命令,但请将`new_password_here`替换为你刚刚设置的新密码: ```sql mysql -u root -e "UPDATE mysql.user SET Password=PASSWORD('new_password_here') WHERE User='root';" FLUSH PRIVILEGES; ``` 最后一行`FLUSH PRIVILEGES;`用于刷新权限,使更改生效。 5. **关闭无权限模式** (仅限Linux): - 如果你还记得原始的root口令,可以关闭`skip-grant-tables`模式: ```bash sudo service mysql restart ``` 请注意,这个过程是在服务器上操作,涉及到对MySQL服务器的安全管理,所以在生产环境中请谨慎操作,并备份重要数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值