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. 阿里云 CentOS6.5 ssh连接慢的解决方案

    我租了一台阿里云深圳的服务器,用的是CentOS6.5的系统,最近要在服务器上小改点代码,但是不管用private shell 还是securecrt工具连接,连上去后,都特别慢,经常敲一段代码要过个 ...

  2. Java与模式读书笔记

    >设计目标:可扩展性,灵活性,可插入性. >设计原则 ● Open Closed Principle 开闭原则 对扩展开放,对修改关闭. 对面向对象的语言来说,不可以更改的是系统的抽象层, ...

  3. bzoj-4517 4517: [Sdoi2016]排列计数(组合数学)

    题目链接: 4517: [Sdoi2016]排列计数 Time Limit: 60 Sec  Memory Limit: 128 MBSubmit: 846  Solved: 530[Submit][ ...

  4. Unity 5.3 安装完没有Android(安卓)或IOS Module(模块)?

    Unity5.3 模块独立 Unity5.3把各个模块分开来了,主程序安装包更轻巧,在官网下载的话,能下载到 Unity安装程序,Unity编辑器等一些资源package,其它的模块可以通过Unity ...

  5. UI的重用性

    UI抽取思路 一款手机游戏中UI有几十个到上百个不等,如果一个一个做这些UI,无疑会花费很多时间. 近期我们的游戏UI已经是第N次改版了,经过这N多次的修改,我总结了UI其实有很多的共性(就是相同性) ...

  6. [No000006]苏格拉底与失恋者的对话

    苏(苏格拉底): 孩子,为什么悲伤? 失(失恋者): 我失恋了. 苏: 哦,这很正常. 如果失恋了没有悲伤,恋爱大概也就没有什么味道了.可是,年轻人,我怎么发现你对失恋的投入甚至比对恋爱的投入还要倾心 ...

  7. javascript中String的fromCharCode()方法

    前几天遇到一个bug,后端的模板引擎在输出形如: <div title="111 aaa">内容</div> 这样的内容时,无法输出' '空格,所以只能用' ...

  8. python里的del变量无法立刻释放内存的解决办法

    最近在python开发的时候,用到了一些很占用内存的操作,导致后续程序执行很慢甚至无法执行.探索了一下,最终解决了这个问题. 截图解释: python变量占用了内存,仅仅通过del变量的方式,只是让这 ...

  9. 表单 - Form - 无刷新提交原理

    为什么Form组件的表单提交可以做到无刷新? EasyUI在提交的时候,将表单作为一个隐藏的iframe进行的提交,并不是我们看到的那个表单进行的提交 并且那个iframe使用了绝对定位,保证页面上不 ...

  10. 【C#】【MySQL】C#获取存储过程的Output输出参数值

    创建存储过程 Create PROCEDURE MYSQL @a int, @b int, @c int output AS Set @c = @a + @b GO 通过以下方法可以获得储存过程的输出 ...