zoukankan      html  css  js  c++  java
  • mysql数据库密码的修改与恢复

    一、mysql密码的修改与恢复

      1.修改密码

        mysqladmin -u root -p123 password 456

      数据库内修改

        method.first:

          update mysql.user set password=password('123') where user='root' and host='localhost';

          flush privileges;

        method.second:

          set password for root@'localhost' =password('123');

          注: 此方法无序刷新权限

        method.third:

          mysql_secure_installation

          注: 安全配置向导,会对数据库进行简单的优化

    二、忘记mysql密码后的恢复

      1.跳过mysql安全验证,直接mysql无密码登录,然后进入修改密码

    1
    2
    /etc/init.d/mysqld  stop
    mysqld_safe --skip-grant-table --user=mysql &>/dev/null &
    1
    <span style="font-size: 14px;"><br>三、如何防止mysql密码泄露<br></span>

      1. 设置环境变量强制linux不记录敏感历史命令

        临时生效(命令行操作):HISTCONTROL=ignorespace  然后[ root@ 001 ~] # mysql -uboy -pboy123

        永久生效:

            echo  ' HISTCONTROL=inorespace ' >>/etc/bashrc   然后source生效

      2. 通过history删除命令行记录

        清空所有记录   history  -c

        删除指定行记录  history -d 行号

        清空历史记录文件  >~/.bash_history

      3.把密码写入my.cnf 配置文件的 [ mysqld ] 下添加 skip-grant-tables  重启数据库生效

     四、数据库的备份与恢复

      1、单库备份与还原

    1
    2
    3
    4
    5
    6
    7
    备份
    mysqldump -uroot -p123456 lll>/opt/backup/lll.sql
    注:此操作只备份其中的表(包括创建表的语句和数据)
     
    还原
    mysql -uroot -p123 -e ' create database lll;'
    mysql -uroot -p123 lll < /opt/backup/lll.sql

      2.多库备份与还原

    1
    2
    3
    4
    5
    备份
    mysqldump -uroot -p123 库名 表1 表2>/opt/backup/mysql_bak_db.sql
     
    还原
    mysql -uroot -p123 库名 </opt/backup/mysql_bak_db.sql

      3.全库备份

    1
    2
    3
    mysqldump -uroot -p123 -A >/opt/backup/mysql_bak_db.sql
    mysqldump  -uroot -p123 --all-databases > /opt/backup/mysql_bak_db.sql

      4.还原备份

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    #备份lol数据库
    [root@ c6s02 ~]# mysqldump -uroot -p123456 -B lol >lol.sql
     
     
    #先删除lol数据库
    [root@ c6s02 ~]# mysql -uroot -p123456
     
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | lol                |
    | mysql              |
    | performance_schema |
    | test               |
    | wg                 |
    +--------------------+
    6 rows in set (0.00 sec)
     
    mysql> drop database lol;
    Query OK, 3 rows affected (0.03 sec)
     
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | mysql              |
    | performance_schema |
    | test               |
    | wg                 |
    +--------------------+
    5 rows in set (0.00 sec)
     
    mysql> q
     
    #测试恢复并查看
    [root@ c6s02 ~]# mysql -uroot -p123456 <lol.sql
    Warning: Using a password on the command line interface can be insecure.
     
    [root@ c6s02 ~]# mysql -uroot -p123456
    mysql> show databases;
    +--------------------+
    | Database           |
    +--------------------+
    | information_schema |
    | lol                |
    | mysql              |
    | performance_schema |
    | test               |
    | wg                 |
    +--------------------+
    6 rows in set (0.00 sec)
     
    mysql> select from lol.hero;
    +----+--------+--------+-----------+--------+
    | id | 角色   | 职业   | 攻击力    | 血量   |
    +----+--------+--------+-----------+--------+
    |  1 | 蛮王   | 战士   |       200 | NULL   |
    |  2 | 狗头   | 战士   |       100 | NULL   |
    |  3 | 剑圣   | 战士   |       300 | NULL   |
    +----+--------+--------+-----------+--------+
    3 rows in set (0.00 sec)

      (2)、method.second:

    1
    2
    [root@ c6s02 ~]# mysql -uroot -p123456
    mysql> source /root/lol.sql

    通过二进制日志备份和恢复

    1.备份二进制日志

    cp /var/lib/mysql/mysql-bin.* /home/backup/


    2.恢复
    查看二进制日志
      mysqlbinlog /var/lib/mysql/mysql-bin.000001

    恢复
    从日志文件mysql-bin.000004的位置1379恢复到1966

       mysqlbinlog mysql-bin.000004 --start-position=1379 --stop-position=1966 | mysql -uroot

    从日志文件mysql-bin.000004的日期2019-09-27 15:08:49 恢复到2019-09-27 15:09:06
       mysqlbinlog mysql-bin.000004 --start-datetime="2019-09-27 15:08:49" --stop-datetime="2019-09-27 15:09:06" | mysql -uroot

    更多操作详情参考如下:

    https://github.com/crazywjj/bawei

  • 相关阅读:
    在Mybatis中使用连表查询的一次实际应用
    Mybatis使用generatedKey在插入数据时返回自增id始终为1,自增id实际返回到原对象当中的问题排查
    一次org.springframework.jdbc.BadSqlGrammarException ### Error querying database Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException问题排查过程
    商品的spu、sku及其之间的关系
    Java transient关键字的理解
    关于Serializable的一个形象的例子
    一个很大的文件,存放了10G个整数的乱序数列,如何用程序找出中位数。
    Logger.error方法之打印错误异常的详细堆栈信息
    什么是Http无状态?Session、Cookie、Token三者之间的区别
    接口API中的敏感数据基于AES进行安全加密后返回
  • 原文地址:https://www.cnblogs.com/xianglei_/p/12045898.html
Copyright © 2011-2022 走看看