设置,改变,重置mysql根密码

这篇文章关于mysql用户根密码:

  • 设置
  • 改变
  • 重置

一次又一次我见到这样的错误:
connect to server at ‘localhost’ failed error: ‘Access denied for user ‘root’@‘localhost’ (using password: YES)’.
这儿有快速解决篇:

快速解决篇

CentOS, Debian, Fedora, and Ubuntu适用。

  • 方法1:第一次快速为root设置密码
    如果你从来都没为mysql设置过密码,那么服务器不会允许用root用户连接mysql。
    mysqladmin -u root password newpass
    如果你想更新密码为newpass,你需要下面这条:
    mysqladmin -u root -p password newpass
    Enter password:
    如果你得到:
    mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: YES)'
    那么跟着下面的指令看怎么恢复你的mysql密码:
    这个单词password是下面命令的例子中的一部分,不要替换成你的密码。这个单词newpass是新密码。
    在这里插入图片描述
    一个可替代的mysqladmin的,当设置Mysql和MariaDB的是这条命令mysql_secure_installation.这条命令不会设置mysql旧和新的密码,而是做一些安全性的设置比如说:禁止测试数据库。
    下面是怎么使用这条命令:
    mysql_secure_installation
    按照下面的方式回答:
Change the root password? [Y/n] <-- y
New password: <-- Enter a new MySQL root password
Re-enter new password: <-- Repeat the MySQL root password
Remove anonymous users? [Y/n] <-- y
Disallow root login remotely? [Y/n] <-- y
Remove test database and access to it? [Y/n] <-- y
Reload privilege tables now? [Y/n] <-- y 

上面是推荐回答,你也可以自有地选择你的回答如果你需要测试数据库或者数据库root用户远程接入时。note:你不需用PhPMyAdmin远程接入。
改变其他用户的mysql密码
改变普通用户的密码,你需要用mysqladmin -u user-name -p password newpass

user-name:你想改变密码的那个用户的用户名
newpass: 新密码

单词password是不可以改变的,因此不要尝试去替换它。这条命令将要求输入旧密码。

  • 方法2:更改密码
    mysql软件在数据库mysqluser中存储了用户名和密码。你可以通过下面的方法直接更改密码:
    1)先登录mysql
    mysql -u root -p
    2)使用mysql数据库
    use mysql;
    3)对指定用户更新密码
    mysql5.7.5和更早期版本:
    mysql> update user set password=PASSWORD("newpass") where User='ENTER-USER-NAME-HERE';
    mysql5.7.6和更新版本:
    mysql> SET PASSWORD FOR 'ENTER-USER-NAME-HERE'@'localhost' = PASSWORD("newpass");
    4)刷新权限
    mysql> flush privileges;
    mysql> quit
    当你使用PHP或Perl脚本时使用。

恢复Mysql的根密码

你可以用下面的5步恢复mysql的密码:
1.kill掉mysql进程
2.开启mysql守护进程跟着--skip-grant-tables选项,跳过输入密码环节。
3.用root用户连接到mysql服务器
4.设置一个新密码
5.退出和重启mysql服务器
这儿有一些命令需要敲对每一步来说(用root登录):
1>停止mysql服务
service mysql stop
或者
service mysqld stop
输出:
Stopping MySQL database server: mysqld.
2>开启mysql服务没有密码
mysqld_safe --skip-grant-tables &
输出:
[1] 5988 Starting mysqld daemon with databases from /var/lib/mysql mysqld_safe[6025]: started
3>用mysql客户端连接到mysql服务器
mysql -u root
输出:
Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 56299 Server version: 5.6.34-1 (Debian)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
4>设置一个新的mysql用户密码
mysql5.75及早起版本:

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

mysql5.76及以后版本:

mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit

5>停掉mysql服务
service mysql stop
输出:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended
 
[1]+  Done                    mysqld_safe --skip-grant-tables

否则用下面的命令,如果停掉mysql失败:
killall mysqld
输出可能依照linux发行版不同而不同,别担心,开启mysql并进行测试:
service mysql start
mysql -u root -p

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值