MySQL使用和操作总结(《MySQL必知必会》读书笔记)
简介
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必知必会》读书笔记)的更多相关文章
- 《MySQL 必知必会》读书总结
这是 <MySQL 必知必会> 的读书总结.也是自己整理的常用操作的参考手册. 使用 MySQL 连接到 MySQL shell>mysql -u root -p Enter pas ...
- 《MySQL必知必会》[01] 基本查询
<MySQL必知必会>(点击查看详情) 1.写在前面的话 这本书是一本MySQL的经典入门书籍,小小的一本,也受到众多网友推荐.之前自己学习的时候是啃的清华大学出版社的计算机系列教材< ...
- mysql必知必会
春节放假没事,找了本电子书mysql必知必会敲了下.用的工具是有道笔记的markdown文档类型. 下面是根据大纲已经敲完的章节,可复制到有道笔记的查看,更美观. # 第一章 了解SQL## 什么是S ...
- 《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 ...
- mysql学习--mysql必知必会
上图为数据库操作分类: 下面的操作參考(mysql必知必会) 创建数据库 运行脚本建表: mysql> create database mytest; Query OK, 1 row ...
- mysql 必知必会总结
以前 mysql 用的不是很多, 2 天看了一遍 mysql 必知必会又复习了一下基础. 200 页的书,很快就能看完, 大部分知识比较基础, 但还是了解了一些以前不知道的知识点.自己做一个备份,随 ...
- MySql必知必会实战练习(二)数据检索
在上篇博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,下面进行数据检索和过滤操作. 1. Select子句使用顺序 select--->DISTINCT---& ...
- MySql必知必会实战练习(三)数据过滤
在之前的博客MySql必知必会实战练习(一)表创建和数据添加中完成了各表的创建和数据添加,MySql必知必会实战练习(二)数据检索中介绍了所有的数据检索操作,下面对数据过滤操作进行总结. 1. whe ...
- 读《MySql必知必会》笔记
MySql必知必会 2017-12-21 意义:记录个人不注意的,或不明确的,或不知道的细节方法技巧,此书250页 登陆: mysql -u root-p -h myserver -P 9999 SH ...
随机推荐
- Django - rest - framework - 下
一.视图三部曲 https://www.cnblogs.com/wupeiqi/articles/7805382.html 使用混合(mixins) 之前得视图部分 # urls.py from dj ...
- React Native知识
http://www.cnblogs.com/wujy/tag/React%20Native/ React Native知识12-与原生交互 React Native知识11-Props(属性) ...
- SaltStack系列(一)之环境部署、命令及配置文件详解
一.SaltStack介绍 1.1 saltstack简介: saltstack是基于python开发的一套C/S架构配置管理工具,它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证 ...
- 如何使用OpenCart 2.x Event事件系统
如何使用OpenCart 2.x Event事件系统 OpenCart 2.x 包含很多新特性,其中之一就是专为开发者提供的事件系统,Event System.它允许你在不修改原有系统代码的基础上( ...
- html编码常见的有utf-8和gb2312编码等,应该如何判断选择?
html如何选择编码,常见utf-8和gb2312编码如何判断选择 一.首先了解目前国内中文网页常用编码是utf-8 还是gb2313. 比如: 百度搜索 网页使用utf-8 腾讯新闻 网页使用utf ...
- springcloud8----feign-with-hystrix
Feign也可以使用Hystrix: package com.itmuch.cloud; import org.springframework.boot.SpringApplication; impo ...
- SQL Server System.Data.SqlClient.SqlException:已成功于服务器建立连接,但是在 登录前的握手期间发生错误
一.错误描述 错误名称如上.整体错误如下: System.Data.EntityException 基础提供程序在Open上失败--> System.Data.SqlClient.SqlExce ...
- bzoj1630 / bzoj2023 [Usaco2005 Nov]Ant Counting 数蚂蚁
Description 有一天,贝茜无聊地坐在蚂蚁洞前看蚂蚁们进进出出地搬运食物.很快贝茜发现有些蚂蚁长得几乎一模一样,于是她认为那些蚂蚁是兄弟,也就是说它们是同一个家族里的成员.她也发现整个 ...
- VC++使用HOOK API 屏蔽PrintScreen键截屏以及QQ和微信默认热键截屏
转载:http://blog.csdn.net/easysec/article/details/8833457 转载:http://www.vckbase.com/module/articleCont ...
- Duilib应用修改程序图标方法
本文向大家介绍如何修改duilib应用图标,对于win32或者mfc应用来说,我们可以在注册窗口类时指定WNDCLASS结构体的HIcon属性.那么duilib应用该怎样处理呢?大家都知道Window ...