简介

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

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

使用MySQL

连接数据库

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

C:\Users\greenhat>mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.6.38 MySQL Community Server (GPL) Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input 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> USE students;
Database changed
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> USE mysql;
Database changed mysql> SELECT user FROM user;
+------+
| user |
+------+
| root |
+------+

创建用户账号  

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

mysql> CREATE USER jack;
Query OK, 0 rows affected (0.48 sec)

  

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

mysql> CREATE USER jackson IDENTIFIED BY '';
Query OK, 0 rows affected (0.06 sec)

  

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

mysql> RENAME USER jack TO ben;
Query OK, 0 rows affected (0.04 sec)

删除用户账号  

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

mysql> DROP USER ben;
Query OK, 0 rows affected (0.00 sec)

设置访问权限

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

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

mysql> SHOW GRANTS FOR jackson;
+-------------------------------------------------------------------------------
-------------------------+
| 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.* TO jackson;
Query OK, 0 rows affected (0.09 sec)

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

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

mysql> SHOW GRANTS FOR jackson;
+-------------------------------------------------------------------------------
-------------------------+
| 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.* FROM jackson;
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('');
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 TABLE students;
+-------------------+---------+----------+----------+
| 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必知必会》读书笔记)的更多相关文章

  1. 《MySQL 必知必会》读书总结

    这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...

  2. 《MySQL必知必会》[01] 基本查询

    <MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...

  3. mysql必知必会

    春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...

  4. 《MySQL必知必会》整理

    目录 第1章 了解数据库 1.1 数据库基础 1.1.1 什么是数据库 1.1.2 表 1.1.3 列和数据类型 1.1.4 行 1.1.5 主键 1.2 什么是SQL 第2章 MySQL简介 2.1 ...

  5. mysql学习--mysql必知必会

      上图为数据库操作分类:     下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...

  6. mysql 必知必会总结

    以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础.  200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...

  7. MySql必知必会实战练习(二)数据检索

    在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作. 1. Select子句使用顺序 select--->DISTINCT---& ...

  8. MySql必知必会实战练习(三)数据过滤

    在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...

  9. 读《MySql必知必会》笔记

    MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...

随机推荐

  1. Python自动发布Image service的实现

    使用Python自动发布地图服务已经在上一篇博客中讲到,使用Python创建.sd服务定义文件,实现脚本自动发布ArcGIS服务,下面是利用Python自动发布Image service的实现. -- ...

  2. jquery 获取对象

    jquery 获取对象 1.引用this作为对象时,必须以$(this)的形式变为对象目标,否则,无法识别,会报错“ has no method”

  3. vue.js(四)

    由于组件内容太多又特别关键,我决定在官网教程的基础上,加上自己的理解,针对每个内容详细记录一下  1.注册组件 ①全局注册 //首先创建组件 Vue.component('blog-post', { ...

  4. Day01 html详解

      day01 html详解   1.html的简介     1.1 什么是html?         - HyperText Markup Language:超文本标记语言,网页语言         ...

  5. Elasticsearch查询规则(一)match和term

    es种有两种查询模式,一种是像传递URL参数一样去传递查询语句,被称为简单搜索或查询字符串(query string)搜索,比如 GET /megacorp/employee/_search //查询 ...

  6. 【mybatis】认识selectKey

    转:https://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html 对于不支持自动生成类型的数据库或可能不支持自动生成主键 JDBC 驱动来说,MyBat ...

  7. hive表与外部表的区别

    相信很多用户都用过关系型数据库,我们可以在关系型数据库里面创建表(create table),这里要讨论的表和关系型数据库中的表在概念上很类似.我们可以用下面的语句在Hive里面创建一个表: hive ...

  8. gcc报错 can not be used when making a shared object; recompile with -fPIC

    使用google protobuf时,出现错误 /usr/bin/ld: /usr/local/lib/libprotobuf.a(message_lite.o): relocation R_X86_ ...

  9. python selenium 安装与 chromedriver安装

    安装 pip install selenium 安装完成之后运行脚本,如果没报错那ok.但是很不幸运,我报错啦.(本人使用ubuntu16.04,python2,or python3) 贴出我的报错: ...

  10. 4.7 Routing -- Redirecting

    一.Transitioning and Redirection 从一个route调用transitionTo或者从一个controller调用transitionToRoute将会停止任何进程中的任何 ...