一、版本介绍

       社区版:免费,个人使用,不能商业用,出了问题自己解决,没有技术支持

       企业版:收费,商业用,偏重于基本服务,cpu个数在1-4之间,费用4万/年;超过4个,7万/年

       集群版:收费,商业用,偏重于集群设定,cpu个数在1-4之间,费用7万/年;超过4个,14万/年


二、yum安装

       mysql:主要提供管理工具

       mysql-server:提供基本模块和功能


三、启动数据库

       加载的内容以及数据库下的文件

       说明:ibdata1、ib_logfile0、ib_logfile1都是数据库索引文件,用来快速定位数据;mysql.sock套接字文件,绑定了数据库的IP、端口等,想要用户连接访问,就必须要有这个文件

  

mysql成本计算 mysql收费标准_mysql成本计算

       数据库文件解释:

       .frm文件:存放数据用的数据表结构

       .MYD文件:存放数据表的具体数据

       .MYI文件:当前数据表的索引文件

  

mysql成本计算 mysql收费标准_字段_02


四、登录数据库

-u 用户

                  -p 密码

                  -h 登录哪台服务器

                  -P 指定端口


       远程登录数据库

        mysql -h192.168.1.100 -uroot -p123456


    a. mysqladmin:添加密码的工具

        格式:mysqladmin -uroot password '123456'


    b. 修改root密码:root登录之后

        set password=password("654321")


    c. 修改普通用户密码,root登录之后

       set password for 'user1'@'localhost' =password("654321")


    d.  忘记root用户密码之后,重设密码步骤:

        1) 停止数据库 service mysqld stop

        2) 修改配置文件my.cnf,加入skip-grant-tables

        3) 启动数据库 service mysqld stat,不用密码直接root登录

set password=password('123')

        5) 修改配置文件,删除skip-grant-tables

        6) 重启数据库service mysqld restart

        7) 新密码登录


五、创建数据库用户

       格式:create user silen@'192.168.1.0/24' by identified '123456'


六、数据库操作(备份 还原 多机 集群)


【操作1-增】

create


      2. create table tb1(字段1 类型1,字段2 类型2......)

域约束


insert into tb1(id,name,info)

insert into命令


insert into

          插入部分字段数据


(2,'wangwu','student')...

          同时插入多行数据


select id from tb2

复制给tb1的id字段,两条命令合并,id类型需相同


      【增操作-延伸】

           1. 将原表数据添加到新表

 insert into <新表> (列名) select <原表列名> from <原表名>

           例:insert into contacts ('姓名','地址','电子邮件')

                 select name,address,email

                 from Students


           2. 将原表数据创建为一个新表

select <新表列名> into <新表名> from <源表名>

               例:select name,address,email into contacts from students


          3. 使用union连续插入多行

insert <表名> (列名) select <列值> union select <列值>

              例:insert Students (姓名,性别,出生日期)

                     select '李四','男','1980/6/15' union

                     select '王五','男','1981/9/20'

              说明:union表示下一行的意思

  

【操作2-删】

drop


      2. drop table tb1

         删除库和表,用到drop命令

         说明:删除表的所有行,但表的结构、列、约束、索引等不会被删除;不能删除有外建约束引用的表


delete from tb1 where id=2

         删除id=2的这一行数据,最好用主键来标识行,避免删错其他行,用到delete命令


【操作3-改】

       update更改数据,alter更改表

where id=5

           更改一条数据,用到where来定位


where id between 4 and 10

          用范围匹配between and,更改多条数据


rename

         更改表名,用到rename命令

 

modify

          更改字段类型,比如name的char长度,其他属性也跟着改,如Default,用到modify命令


change

         更改字段名称,用到change命令,其他属性也跟着修改


drop

         删除某个字段,用drop命令


add

         添加一个字段,用到add命令,date表示类型,first表示放在第一行呈现,没有second选项,不加则默认最后一行


add nian year after

        after命令表示插入在某行的后面


【操作4-查】

     1. show databases

     2. show tables

     3. show engines\G

     4. desc tb1


     5. show create table tb1      查看创建表结构语句

     6. select 字段名/* from tb1

     7. select host,user from mysql.user   查看数据库用户



 

mysql成本计算 mysql收费标准_运维_03

     Field:字段属性

     Null:是否允许数值为空

主键(约束),具有唯一性数值的字段名,能快速定位到某一行,如id

     Default:当没有填入值时,默认填一个NULL

     Extra:额外参数


    6. show global variables like '%log%'

        查看跟日志相关的变量

 

mysql成本计算 mysql收费标准_运维_04


  

mysql成本计算 mysql收费标准_字段_05


   说明:

      a. bin开头:二进制日志信息,主从配置mysql,从服务器的日志也会产生在主的错误日志里

      b. general开头:一般查询日志信息

      c. innodb开头:事务日志信息

      d. relay开头:中继日志信息


【查询操作-延伸】

          A.【精确(条件)查询】

select <列名> from <表名> [where <查询条件表达试>] [order by <排序的列名>[asc或desc]]

               1. 查询所有数据行和列

                   例:select * from students


              2. 查询部分行列

                  例:select name,address from students where score=90


              3. 查询中使用as更改列名

                  例:select name as name1 from sdudents where gender='男'

                  注:将列名name 改为name1


              4. 查询空行

                  例:select name from students where email is null

                  注:is null和is not null判断是否为空行


              5. 查询中使用常量

                  例:select name, '深圳' as address from Student

                  注:查询name列,并增加新的列address,所有的值都设为深圳


              6. 查询返回限制行数(关键字:top percent)

                  例1:select top 6 name from students

                  说明:top 6 表示name列的前6行


                 例2:select top 60 percent name from students

                 说明:表示name的60%


              7. 查询排序(order by , asc , desc)

                  例:select name

                  from students

                  where score>=60

                  order by desc

                  说明:desc表示降序,默认asc为升序


              B.【模糊(条件)查询】

              1. 使用like查询

                  例:select * from students where name like '赵%'

                  说明:like运算符只用于字符串,仅与char和varchar数据类型联合使用


              2. 使用between进行范围查询

                  例:select * from students where age between 18 and 20

                  说明:查询显示表a中nianling在18到20之间的记录


              3. 使用in在列举值内查询

                  例:select name from students where address in ('北京','上海','唐山')

                  说明:查询表a中address值为北京或者上海或者唐山的记录,显示name字段


             C.【分组查询】

             1. 使用group by分组查询

                 例:select gender,count(gender) from students group by

                 说明:只显示男女性别,并调用函数,计算并显示对应人数


             2. 使用having条件表达式查询

                 例:select gender,count(gender) from students group by gender having count(gender) >= 3

                 说明:显示性别人数大于3的性别和人数


            D.【多表连接查询-内连接】

             1. where子句中指定联接条件

                 例:select tb1.name,tb2.score

                       from tb1,tb2

                       where tb1.name=tb2.name

                说明:查询表1和表2中name字段相等的记录,并显示表1中的name字段和表2中的score字段;当两个表中具有相同意义的字段值相等时,就查询出该条记录


            2. from子句中使用join…on

                例:select tb1.name,tb2.score

                      from tb1 inner join tb2

                     on (tb1.name=tb2.name)

                说明:查询表1和表2中name字段相等的记录,并显示表1中的name字段和表2中的score字段


           E.【多表连接查询-左外连接查询】

select 属性名列表 from 表名1 left join 表名2 on 表名1.属性名1=表名2.属性名2

               例:select s.name,c.courseID,c.score

                      from students as s

                      left outer join score as c

                      on s.scode=c.strdentID

                说明:在strdents表和score表中查询满足on条件的行,条件为score表的strdentID与students表中的sconde相同;进行左连接查询时,可以查出students中所有记录,而score表中,只能查询出匹配的记录

               注:左链接是以左边表中数据为参照,显示左边表中所有数据,右边表,只显示与左边表对应的数据,少了补NULl,多了删除;同理,右链接是以右边为参照,左边少了补NULL,多了删除。


          F.【多表连接查询-右外连接查询】

select 属性名列表 from 表名1 right join 表名2 on 表名1.属性名1=表名2.属性名2

             例:select s.name,c.courseID,c.score

                    from students as s

                    right outer join score as c

                   on s.scode=c.studentID

            说明:在students表和score表中查询满足on条件的行,条件为students表中的sconde与score表的strdentID相同;进行右连接查询时,可以查出score中所有记录,而表students中,只能查询出匹配的记录


【操作5-权限】

grant

              授权use1r以本地身份登录,并拥有db1库的所有权限


show

             查看user1在本地登录,拥有哪些权限


revoke select

            移除user1本地登录后的查询权限


七、MySQL数据库客户端图形界面管理工具

         1. MyDB Studio

         2. phpMyAdmin

         3. sqlyog

         4. Navicat for MySQL

         5. 慢日志查询工具 mysqlsla

  



转载于:https://blog.51cto.com/huangzp/1895785