简介

MySQL是一种DBMS,即它是一种数据库软件。DBMS可分为两类:一类是基于共享文件系统的DBMS,另一类是基于客户机——服务器的DBMS。前者用于桌面用途,通常不用于高端或更关键应用。

MySQL是基于客户机——服务器的数据库。客户机——服务器应用分为两个不同的部分。服务器部分是负责所有数据访问和处理的软件。这个软件运行在称为数据服务器的计算机上。客户机是与用户打交道的软件。

使用MySQL

连接数据库

在操作系统命令提示符下输入 mysql 将出现如下提示:

C:\Users\greenhat>mysql

Welcometo the MySQL monitor. Commands end with ; or\g.

Your MySQL connection idis 9Server version:5.6.38MySQL Community Server (GPL)

Copyright (c)2000, 2017, Oracle and/or its affiliates. Allrights reserved.

Oracleis a registered trademark of Oracle Corporation and/orits

affiliates. Other names may be trademarksoftheir respective

owners.

Type'help;' or '\h' for help. Type '\c' to clear the currentinput statement.

mysql>

如上述界面提示即打开了数据库的连接。也可用root用户打开:mysql -u root -p。这是会提示输入密码,如果安装时未设置密码按回车即可。如果软件安装时未设置环境变量,需要在所安装目录的/bin下输入mysql方可启动。

注意:

a.命令输入在mysql>之后;

b.命令用;或\g结束;

c.输入quit或exit退出命令行实用程序。

选择数据库

最初连接到MySQL时,没有数据库打开供你使用。这时可输入 SHOW DATABASES 查看已有的数据库:

mysql>SHOW DATABASES;+--------------------+

| Database |

+--------------------+

| information_schema |

| mysql |

| performance_schema |

| student |

| students |

| test |

+--------------------+

6 rows in set (0.02 sec)

从已有的数据库中选择一个数据库。可用关键字USE:

mysql> USEstudents;Databasechanged

mysql>

使用SHOE TABLES 查看数据库中存在的表:

mysql>SHOW TABLES;+--------------------+

| Tables_in_students |

+--------------------+

| student1 |

| students |

| teacher |

| teacher1 |

+--------------------+

4 rows in set (0.08 sec)

接下来可用SQL语句来对数据库进行新建表格等操作。

用户管理与维护

MySQL服务器的安全基础是:用户应该对他们需要的数据具有适当的访问权限,既不能多也不能少。例如多数用户只需对表进行读和写,某些用户(管理员)可能需要处理用户账号的权限。MySQL创建一个名为root的用户账号,它对整个MySQL服务具有完全的控制。你可能已经试过用root账号登陆,不过在现实世界的日常工作中,绝对不能随便使用root。应该创建一系列的账号,有的用于管理,有的供用户使用,有的供开发人员使用,等等。

MySQL用户账号和信息存储在名为 mysql 的MySQL数据库中:

mysql> USEmysql;Databasechanged

mysql> SELECT user FROM user;+------+

| user |

+------+

| root |

+------+

创建用户账号

创建一个新的用户账号,使用CREATE USER语句,如下:

mysql> CREATE USERjack;

Query OK,0 rows affected (0.48 sec)

这时再列出用户就能看到我们刚才新建的用户了。我们也可以在创建用户时添加口令,使用IDENTIFIED BY PASSWORD,如下:

mysql> CREATE USER jackson IDENTIFIED BY '123456';

Query OK,0 rows affected (0.06 sec)

重命名一个用户账号时,使用RENAME USER语句,如下:

mysql> RENAME USER jack TOben;

Query OK,0 rows affected (0.04 sec)

删除用户账号

删除一个用户账号,使用DROP USER语句,如下:

mysql> DROP USERben;

Query OK,0 rows affected (0.00 sec)

设置访问权限

在创建账号后,必须接着分配访问权限。新创建的账号没有访问权限。它们能登陆MySQL,但不能看到数据,不能执行任何数据操作。

为看到赋予用户账号的权限,使用SHOW GRANTS FOR 语句,如下:

mysql> SHOW GRANTS FORjackson;+--------------------------------------------------------------------------------------------------------+

| Grants for jackson@%

|

+--------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'jackson'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105

EE4568DDA7DC67ED2CA2AD9' |

+--------------------------------------------------------------------------------------------------------+

1 row in set (0.04 sec)

输出结果显示用户jackson有一个权限USAGE ON *.* 。USAGE表示根本没有权限。

为设置权限,使用GRANT语句。GRANT要求你至少给出以下信息:

a.要授予的权限;

b.被授予访问权限的数据库和表。

c.用户名。

下面给出GRANT的用法例子:

mysql> GRANT SELECT ON students.* TOjackson;

Query OK,0 rows affected (0.09 sec)

此GRANT允许用户jackson在students.*(students数据库的所有表)上使用SELECT 。通过授权SELECT访问权限,用户jackson对students数据库中所有的数据具有只读访问权限。

查看更改后的用户的权限:

mysql> SHOW GRANTS FORjackson;+--------------------------------------------------------------------------------------------------------+

| Grants for jackson@%

|

+--------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'jackson'@'%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105

EE4568DDA7DC67ED2CA2AD9' |

| GRANT SELECT ON `students`.* TO 'jackson'@'%'

|

+--------------------------------------------------------------------------------------------------------+

2 rows in set (0.04 sec)

GRANT的饭操作为REVOKE,用来撤销特定的权限。如下:

mysql> REVOKE SELECT ON students.* FROMjackson;

Query OK,0 rows affected (0.01 sec)

GRANT和REVOKE可在几个层次上控制访问权限:

a.整个服务器,使用GRANT ALL 和 REVOKE ALL ;

b.整个数据库,使用ON database.* ;

c.特定的表,使用ON database.table ;

d.特定的列;

e.特定的存储过程。

更多具体的权限可查看相关官方文档。

更改口令

更改用户口令,可使用SET PASSWORD 语句。如下:

mysql> SET PASSWORD FOR jackson=Password('654321');

Query OK,0 rows affected (0.05 sec)

新口令必须传递到Password()函数进行加密。

备份数据

像所有数据一样,MySQL的数据也必须经常备份。下面列出可进行备份的方法:

a.私用命令行实用程序mysqldump转存所有数据库内容到某个外部文件。在进行常规备份前这个程序应该正常运行,以便正确的备份转存文件。

b.可用命令行实用程序mysqlhotcopy从一个数据库复制所有数据。

c.可以使用MySQL的BACKUP TABLE 或SELECT INTO OUTFILE 转储所有数据到外部文件。这两条语句都接受将要创建的系统文件名,此文件必须存在,否则会出错。数据库可用RESTORE TABLE 来复原。

数据库维护

MySQL提供一系列的语句,可以用来保证数据库正确和正常运行。

ANALYZE TANLE用来检查表键是否正确。如下:

mysql> ANALYZE TABLEstudents;+-------------------+---------+----------+----------+

| Table | Op | Msg_type | Msg_text |

+-------------------+---------+----------+----------+

| students.students | analyze | status | OK |

+-------------------+---------+----------+----------+

1 row in set (1.12 sec)

此外还可以用CHECH TABLE用来针对多个问题进行检查。

参考文献

《MySQL必知必会》Ben Forta,人民邮电出版社。

mysql中用完即删用什么_MySQL使用和操作总结(《MySQL必知必会》读书笔记)相关推荐

  1. mysql必知必会_MySQL必知必会

    MySQL必知必会 联结的使用, 子查询, 正则表达式和基于全文本的搜索, 存储过程, 游标, 触发器, 表约束. 了解SQL 数据库基础 电子邮件地址薄里查找名字时, 因特网搜索站点上进行搜索, 验 ...

  2. mysql必学十大必会_MYSQL 学习(一)--启蒙篇《MYSQL必知必会》

    MYSQL必知必会 一. DDL 数据定义语言 Data Definition Language 是指CREATE,ALTER和DROP语句. DDL允许添加/修改/删除包含数据的逻辑结构,或允许用户 ...

  3. mysql必知必会的数据_MySQL必知必会--汇 总 数 据

    聚集函数 我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提 供了专门的函数.使用这些函数,MySQL查询可用于检索数据,以便分 析和报表生成.这种类型的检索例子有以下几种. 确定表中行数 ...

  4. mysql第四章分页显示查询出租房屋信息_MYSQL必知必会读书笔记第四章之检索数据...

    MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理. 使用Select语句返回的数据,可能会发现显 ...

  5. mysql必_MySQL必知必会(一)

    摘自<MySQL必知必会> 1.1.1 什么是数据库 数据库:保存有组织的数据的容器(通常是一个文件或一组文件) 人们通常用数据库这个术语来代表他们使用的数据库软件.这是不正确的,它是引起 ...

  6. mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天

    本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据 使用UPDATE语句更新(修改)表中的数据: 更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开 ...

  7. mysql数据库过滤空值_mysql必知必会--过 滤 数 据

    使用 WHERE 子句 数据库表一般包含大量的数据,很少需要检索表中所有行.通常只 会根据特定操作或报告的需要提取表数据的子集.只检索所需数据需要 指定搜索条件(search criteria),搜索 ...

  8. 5天学会mysql_5天学完《MySQL必知必会》学习笔记之第四天

    本篇知识点 更新删除数据.创建操纵表.视图.存储过程 更新和删除数据使用UPDATE语句更新(修改)表中的数据:更新表中特定行(使用WHERE语句 更新表中所有行 UPDATE语句以要更新的表名开始, ...

  9. mysql各种联结的区别_mysql必知必会-创建高级联结

    使用表别名 使用别名引用被检索的表列 别名除了用于列名和计算字段外,SQL还允许给表名起别名.这样做 有两个主要理由: 缩短SQL语句: 允许在单条 SELECT 语句中多次使用相同的表. 可以看到, ...

最新文章

  1. 非对称卷积增强CNN特征拟合
  2. SAP MM 如何手工修改IDoc的状态?
  3. 第十六届全国大学生智能汽车竞赛--百度智慧交通(东部赛区)
  4. xpath+多进程爬取网易云音乐热歌榜。
  5. SpringCloud与dubbo的区别
  6. Python3 实现建造者模式
  7. Linux下安装nginx (tar解压版安装) nginx1.16.1
  8. select、poll、epoll使用小结
  9. 搭建 | 一步成功搭建Centos + Kubernetes 环境
  10. vue element form 自定义校验1(字段校验)
  11. 自行车测速器怎么调_怎么测甲醛?
  12. python - 动态加载模块和类
  13. PHP佳音高清图片上传下载源码
  14. C# Winform重启软件
  15. 智能小区计算机网络系统,智能住宅小区综合布线系统方案
  16. LS-DYNA基础理论
  17. 安卓手机运行springboot 应用,做java 服务器
  18. java折线图_如何用java 画折线图
  19. 太阳能热水器工作原理
  20. 仿微信群聊头像(图像合成、缩放)

热门文章

  1. nodejs在cmd提示不是内部或外部命令解决方法
  2. 51nod 1379 索函数
  3. Android WebView常见问题及解决方案汇总【很全很实用】
  4. 点击链接如何直接跳转到相对应的聊天窗口
  5. SQLlite 分页
  6. 软件项目管理-构建之法-四周总结
  7. 从一个视图控制器切换到另一个视图控制器的几种方式
  8. 设计模式——简单工厂
  9. 图片效果集合(js、jquery或html5)
  10. (转)初次体验.net Ajax无刷新技术