• mysql+linux 忘记密码


    方法一:
    # /etc/init.d/mysql stop
    # mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
    # mysql -u root mysql
    mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    # /etc/init.d/mysql restart
    # mysql -uroot -p
    Enter password: <输入新设的密码newpassword>
    mysql>
    方法二:
    直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:
    # mysql -udebian-sys-maint -p
    Enter password: <输入[client]节的密码>
    mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’;
    mysql> FLUSH PRIVILEGES;
    mysql> quit
    # mysql -uroot -p
    Enter password: <输入新设的密码newpassword>
    mysql> 

    MYSQL 数据库知识点

    01.MySQL 和 MongoDB 的区别有哪些?如何选择?
    关系型数据库和文档型数据库,存储方式 数据处理,架构特点。
    mongoDB 适于事件的记录,内容管理或者博客平台等。

    02.分析一下 Mysql 和 Mongodb 应用场景 (*HBase)

    • 1. 如果需要将 mongodb 作为后端 db 来代替 mysql 使用,即这里 mysql 与 mongodb 属于平行级别,那么,这样的使用可能有以下几种情况的考量: (1)mongodb 所负责部分以文档形式存储,能够有较好的代码亲和性,json 格式的直接写入方便。(如日志之类) (2) 从 data models 设计阶段就将原子性考虑于其中,无需事务之类的辅助。开发用如 nodejs 之类的语言来进行开发,对开发比较方便。 (3)mongodb 本身的 failover 机制,无需使用如 MHA 之类的方式实现。

    • 2. 将 mongodb 作为类似 redis ,memcache 来做缓存 db,为 mysql 提供服务,或是后端日志收集分析。 考虑到 mongodb 属于 nosql 型数据库,sql 语句与数据结构不如 mysql 那么亲和 ,也会有很多时候将 mongodb 做为辅助 mysql 而使用的类 redis memcache 之类的缓存 db 来使用。 亦或是仅作日志收集分析。

    03. 听说过事务吗?**(必考)**

    答:

    作为单个逻辑工作单元执行的一系列操作,满足四大特性:

    1. 原子性(Atomicity):事务作为一个整体被执行 ,要么全部执行,要么全部不执行;

    2. 一致性(Consistency):保证数据库状态从一个一致状态转变为另一个一致状态;

    3. 隔离性(Isolation):多个事务并发执行时,一个事务的执行不应影响其他事务的执行;

    4. 持久性(Durability):一个事务一旦提交,对数据库的修改应该永久保存。

    04. 事务的并发问题有哪几种?

    答:丢失更新、脏读、不可重复读以及幻读。

    05. 数据库中的锁有哪几种?

    答:独占锁、排他锁以及更新锁。

    06. 事务的隔离级别有哪几种?

    答:读未提交、读已提交、可重复读和序列化。

    扩展问题:MySQL 事务默认隔离级别是哪个?

    答:可重复读。

    07. 数据库的索引有什么作用? 底层数据结构是什么,为什么使用这种数据结构?

    答:

    1. 索引 是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息;

    2. 底层数据结构是 B+ 树;

    3. 使用 B+ 树的原因:查找速度快、效率高,在查找的过程中,每次都能抛弃掉一部分节点,减少遍历个数。( 此时,你应该在白纸上画出什么是 B+ 树 )

    扩展问题:聚簇索引和非聚簇索引的区别?

    08. MyISAM 和 InnoDB 的区别有哪些?

    答:

    • MyISAM 不支持事务,InnoDB 是事务类型的存储引擎;

    • MyISAM 只支持表级锁,BDB 支持页级锁和表级锁,默认为页级锁;而 InnoDB 支持行级锁和表级锁,默认为行级锁;

    • MyISAM 引擎不支持外键,InnoDB 支持外键;

    • MyISAM 引擎的表在大量高并发的读写下会经常出现表损坏的情况;

    • 对于 count( ) 查询来说 MyISAM 更有优势;

    • InnoDB 是为处理巨大数据量时的最大性能设计,它的 CPU 效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的;

    • MyISAM 支持全文索引(FULLTEXT),InnoDB 不支持;(MySQL5.6 版本开始支持InnoDB引擎的全文索引)

    • MyISAM 引擎的表的查询、更新、插入的效率要比 InnoDB 高。

    最主要的区别是:MyISAM 表不支持事务、不支持行级锁、不支持外键。 InnoDB 表支持事务、支持行级锁、支持外键。(可直接回答这个)

    09. 数据库中 Where、group by、having 关键字:

    答:

    关键字作用:

    1. where 子句用来筛选 from 子句中指定的操作所产生的的行;

    2. group by 子句用来分组 where 子句的输出;

    3. having 子句用来从分组的结果中筛选行;

    having 和 where 的区别:

    1. 语法类似,where 搜索条件在进行分组操作之前应用;having 搜索条件在进行分组操作之后应用;

    2. having 可以包含聚合函数 sum、avg、max 等;

    3. having 子句限制的是组,而不是行。

    当同时含有 where 子句、group by 子句 、having 子句及聚集函数时,执行顺序如下:

    1. 执行 where 子句查找符合条件的数据;

    2. 使用 group by 子句对数据进行分组;对 group by 子句形成的组运行聚集函数计算每一组的值;最后用 having 子句去掉不符合条件的组。

    ps:注意 事务机制、隔离级别

  • 相关阅读:
    完美解决微信端设置title失败问题
    linux下的find&&grep查找命令
    微信开发二三事
    干掉chrome下input恶心的黄色背景
    关于.gitignore文件使用说明
    HTTPie:一个不错的 HTTP 命令行客户端
    退出登录功能改变window的rootviewcontroller输入框键盘不会收起
    coredata操作工具
    并发编程gcd粗暴记忆法
    网友的百度移动云可穿戴部门的面试经历
  • 原文地址:https://www.cnblogs.com/zwt0626/p/9015647.html
Copyright © 2020-2023  润新知