1 mysql简介

一般写某个东西先介绍一下,我就老生常谈的简单介绍下(摘自维基百科)

https://zh.wikipedia.org/wiki/MySQL

MySQL(官方发音为英语发音:/maɪ ˌɛskjuːˈɛl/“My S-Q-L”[1],但也经常读作英语发音:/maɪ ˈsiːkwəl/“My Sequel”)原本是一个开放源代码的关系数据库管理系统,原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。

MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。

但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库[2]。MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB

2基本用法

1,关于mysql的引擎

查看默认存储引擎
show variables like 'storage_engine';     
查看mysql支持的存储引擎
show variables like 'have%';
InnoDB      MyISAM     MEMORY   的存储引擎
InnoDB 优势在于提供了良好的事务管理,崩溃修复能力和并发控制。特点:读写效率稍微差,占用的数据空间相对比较大
 MyISAM 优势在于占用空间小,处理速度快,缺点不支持事务的完整性和并发性。
 MEMORY不常用。
InnoDB储存引擎支持事务处理,支持外键。同时支持崩溃修复能力,和并发控制。如果需要对事务的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有很大的优势。如果频繁的进行更新,删除操作的数据库,也可以选择InnoDB存储引擎。应为改存储引擎可以实现事务的提交和回滚。
MyISAM存储引擎的插入数据快,空间和内存使用比较低。如果表主要用于插入记录和读出记录,那么选择MyISAM比较高效率。如果应用的完整性,并发性要求低,也可以选择。

2基本用法

1. 忘记root密码
 编辑mysql主配置文件 my.cnf 在[mysqld]字段下添加参数  skip-grant  ,重启数据库服务,这样就可以进入数据库不用授权了 mysql -uroot ,修改相应用户密码 
use mysql;
 update user set password=password('your password') where  user='root';
flush privileges;  
最后修改/etc/my.cnf 去掉 skip-grant , 重启mysql服务
当我们第一次使用mysql命令的时候我们提示命令不存在的时候,我们加入path就行了 
在配置文件中 /etc/profile 中 
PATH=$PATH:/usr/local/mysql/bin 
然后别忘记 
source /etc/profile 
或者写全路径   /usr/local/mysql/bin/mysql -uroot

给 mysql root用户设置密码 
mysqladmin -uroot password '123456' 
登陆 
mysql -uroot -p123456 

2. skip-innodb   我们可以增加这个参数不使用innodb引擎。

 
3. 配置慢查询日志
#log_slow_queries = /path/to/slow_queries
 #long_query_time = 1
4. mysql常用操作
 查看都有哪些库  show databases;
查看某个库的表 use db; show tables;
查看表的字段 desc tb;
查看建表语句 show create table tb;
show create table tb\G; (格式化输出)
当前是哪个用户  select user();
当前库 select database();
创建库 create database db1;
指定字符集:
创建表 create table t1 (`id` int(4), `name` char(40));  
查看数据库版本 select version();
查看mysql状态 show status;
修改mysql参数 show variables like 'max_connect%'; set global max_connect_errors = 1000;
查看mysql队列 show processlist;
插入:
创建普通用户并授权 grant all on *.* to user1 identified by '123456';
 grant all on db1.* to 'user2'@'10.0.2.100' identified by '111222';
 grant all on db1.* to 'user3'@'%' identified by '231222';insert into tb1 (id,name) values(1,'aming');
on后边加授权的库
%  所有的意思。。。。
更改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;  
查询 select count(*) from mysql.user; 
select * from mysql.db; 
select * from mysql.db  \G;   (格式化输出)
select * from mysql.db where host like '10.0.%';
插入 update db1.t1 set name='aaa' where id=1;  
清空表 truncate table db1.t1;
删除表 drop table db1.t1;
删除数据库 drop database db1;
修复表 repair table (表名)tb1 [use frm];(可以最好加上)
删除表中的某一个
打开使用innodb
vim /etc/my.cnf(这个文件)
 
show variables;列出标的参数
 
 
show variables  like 'version';(使用like过滤)
 
% %   模糊查询
 
 
set   修改某个参数:(局部生效,,重新启动后就恢复了)
 
一般我们修改的  max_connections
show  processlist;   (查看队列,查看链接数据库状态)
 
查询行数:(查询mysql表字段的行数
 
5. mysql备份与恢复
 备份 mysqldump -uroot -p123456 db >1.sql
恢复 mysql -uroot -p db(创建一个新表) <1.sql  
只备份一个表  mysqldump -uroot -p db tb1 > 2.sql
 
-d(只备份创建表的语句)
备份时指定字符集 mysqldump -uroot -p --default-character-set=utf8  db >1.sql
恢复也指定字符集 mysql -uroot -p --default-character-set=utf8  db  < 1.sql
面试常问的:

运维mysql基础的更多相关文章

  1. Python运维开发基础10-函数基础【转】

    一,函数的非固定参数 1.1 默认参数 在定义形参的时候,提前给形参赋一个固定的值. #代码演示: def test(x,y=2): #形参里有一个默认参数 print (x) print (y) t ...

  2. Python运维开发基础09-函数基础【转】

    上节作业回顾 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 实现简单的shell命令sed的替换功能 import ...

  3. Python运维开发基础08-文件基础【转】

    一,文件的其他打开模式 "+"表示可以同时读写某个文件: r+,可读写文件(可读:可写:可追加) w+,写读(不常用) a+,同a(不常用 "U"表示在读取时, ...

  4. Python运维开发基础07-文件基础【转】

    一,文件的基础操作 对文件操作的流程 [x] :打开文件,得到文件句柄并赋值给一个变量 [x] :通过句柄对文件进行操作 [x] :关闭文件 创建初始操作模板文件 [root@localhost sc ...

  5. Python运维开发基础06-语法基础【转】

    上节作业回顾 (讲解+温习120分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 添加商家入口和用户入口并实现物 ...

  6. Python运维开发基础05-语法基础【转】

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python # -*- coding:utf-8 -*- # author:Mr.chen import os,time Tag = ...

  7. Python运维开发基础04-语法基础【转】

    上节作业回顾(讲解+温习90分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen # 仅用列表+循环实现“简单的购物车程 ...

  8. Python运维开发基础03-语法基础 【转】

    上节作业回顾(讲解+温习60分钟) #!/usr/bin/env python3 # -*- coding:utf-8 -*- # author:Mr.chen #只用变量和字符串+循环实现“用户登陆 ...

  9. Python运维开发基础02-语法基础【转】

    上节作业回顾(讲解+温习60分钟) #!/bin/bash #user login User="yunjisuan" Passwd="666666" User2 ...

随机推荐

  1. 编写 Unity Editor 插件

    Editor Style Viewer 在开发过程中,我喜欢编写一些辅助的Editor插件,方便在游戏开发过程进行调试. 下面是摘自Asset Store的一个查看Unity 默认GUI样式的小工具 ...

  2. 网页动物园2.0发布,经过几个月的努力,采用JAVA编写!

    网页动物园2.0发布,经过几个月的努力,采用JAVA编写! 网页动物园2.0 正式发布!游戏发布 游戏名称: 网页动物园插件 游戏来源: 原创插件 适用版本: Discuz! X1.5 - X3.5 ...

  3. svn那些错误

    一.提交.a文件 第一种方法: 1. 通常选择svn的commit后一般不会上传.a文件. 2. 选中要上传的.a文件,右击选择Add Working Copy. 3. 然后再点击commit,就可以 ...

  4. http协议(七)通用首部字段

    通用首部字段的意思,就是:请求和响应报文双方都会使用的首部 1.Cache-Control 通过指定它的指令,能操作缓存的工作机制 指令参数是可选的,多个指令通过“,”分隔 Cache-Control ...

  5. C# 根据正则表达式来判断输入的是不是数字

    最近在做输入判断的时候出现了一个需要判断输入合法性的问题,就是判断输入的是不是数字,判断方法是根据正则表达式来判断,具体方法如下: private bool IsRightNum(string str ...

  6. Java调用C/C++编写的第三方dll动态链接库(zz)

    这里主要用的方法是JNI.在网上查资料时看到很多人说用JNI非常的复杂,不仅要看很多的文档,而且要非常熟悉C/C++编程.恐怕有很多人在看到诸如此类的评论时已经决定绕道用其他方法了.本文将做详细的介绍 ...

  7. 支付宝Cookie高危漏洞引发的思考

    背景:当时我在做公司的网站支付接入,在调试支付宝WAP支付时,发现一些匪夷所思的事情: 1.我想要切换账号时退到需要输入登录信息时,原账号并没有退出,我按一下后退键又回来了: 2.我关闭浏览器也没有退 ...

  8. GitHub: Windows 下的简单使用

    这段时间在博客园多了很多关于GitHub的文章,但是我的确没怎么看懂.不过这几天简单的看了写资料,亲身操作之后也有了一点体会.这算是最简单的GitHub入门了吧,基本全是鼠标操作.这也是这几天的总结, ...

  9. 3到6年的.NETer应该掌握哪些知识?

    我们组的开发人力一直比较紧张,今年春节后,高层终于给了几个headcount,我们可以开始招人了.从三月初我们就开始找简历,渠道有拉钩,内推,我司自己的招聘网站和智联等.简历筛了很多,也打了很多电话, ...

  10. 171 Excel Sheet Column Number

    /** * 题意:A表示1 B表示2 AA表示27 AB表示28 ------>给你一串字符串输出相应的数字 * 分析:这个就类似于二进制转十进制,从字符串后面往前遍历,然后pow(26,n)* ...