mysql密码详解

1、为mysql设置密码(密码为空时):

    mysqladmin -u root passwd  123456

    #passwd后无需添加单引号或双引号;

    多实例:

    mysqladmin -u root password oldboy -S  /data/3307/mysql.sock

2、单实例命令行新密码替换旧密码:

    mysqladmin -uroot -p123456 password 654321

    #-p后不要有空格和标点符号;

     是password不是passwd;

    多实例命令行新密码替换旧密码:

    mysqladmin -u root -poldboy  password 123456 -S /data/3307/mysql.sock 

    #多实例就是多了一个指定 -S /data/3307/mysql.sock

3、sql语句密码修改:

    多实例登录: mysql -uroot -p123456 -S /data/3307/mysql.sock

    明文密码: -----------------------不可以直接登录--------------------

    update mysql.user set password=‘654321‘ where user=‘root‘ and  host=‘localhost‘;

    权限刷新:

    flush privileges;

    查看密码:

    select user,host,password from mysql.user; 

    指定函数加密密码:

    update mysql.user set password=password(123456) where user=‘root‘ and         host=‘localhost‘; 

    注意where 必须指定条件,不然就全改了;password ()函数更改密码;

    刷新权限:

    flush privileges;

4、找回丢失的密码(思想就是跳过授权表):

    单时例:

    ⅰ:停止数据库;

     最好是优雅关闭数据库 : mysqladmin -uroot -p  shutdown

     其次: /etc/init.d/mysqld stop

     在万不得已的情况下使用pkill 、killall、kill -9 ,最好别用。强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度时,数据库会崩溃。暴力不好!

    ⅱ:在ps -ef | grep mysql检查数据库停止后;

     /application/mysql/bin/mysqld_safe  --skip-grant-tables & #跳过授权表

    ⅲ:mysql 直接登录

    ⅳ:update mysql.user set password=password(123456) where user=‘root‘ and         host=‘localhost‘;

        flush privileges;

    #设置密码即可;

    重新启动数据库,重新登录。

    多实例(思路和单实例大体相同):

     ⅰ:停止数据库;

     ⅱ:/bin/sh /application/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf --skip-grant-tables  &

     ⅲ:登录: mysql -S /data/3307/mysql.sock

     ⅳ:update mysql.user set password=password(123456) where user=‘root‘ and  

         host=‘localhost‘;

         flush privileges;

     #设置密码即可;

     重新启动数据库,重新登录。

-------------------------------------------------------------------------------------------

 生产环境中一般要 删除无用的mysql库内的用户帐号;删除默认存在的test数据库;
1)、删除所有mysql中的用户,包括root超级用户;
    mysql> delete from mysql.user;
    Query OK, 8 rows affected (0.00 sec)
2)、增加system并提升为超级管理用,及和root等价的用户,只是名字不同;
    mysql> grant all privileges  on *.* to system@‘localhost‘ identified by‘oldboy123‘ with grant option;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

-------------------------------------------------------------------------------------------

注:此处要了解上篇博文多实例的创建

    



    






本文出自 “一如既往” 博客,谢绝转载!

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。