简介

  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使用和操作总结的更多相关文章

  1. zabbix数据库mariadb从服务器迁移到云mysql数据库的操作

    zabbix数据库mariadb从本机迁移到云mysql数据库的操作 1.将zabbix数据库导出,并导入到云数据库中 由于数据库较大,如果直接使用shell会话中断会导致数据库导出或者导入失败,使用 ...

  2. DBA必备:MySQL数据库常用操作和技巧

    DBA必备:MySQL数据库常用操作和技巧 2011-02-25 15:31 kaduo it168 字号:T | T MySQL数据库可以说是DBA们最常见和常用的数据库之一,为了方便大家使用,老M ...

  3. mysql没有delete操作,那是delete from操作,

    1.mysql没有delete操作,那是delete from操作, 2.DELETE FROM table_name [WHERE Clause]

  4. MySQL查询in操作 查询结果按in集合顺序显示(转)

    MySQL 查询in操作,查询结果按in集合顺序显示的实现代码,需要的朋友可以参考下. MySQL 查询in操作,查询结果按in集合顺序显示 复制代码代码如下: select * from test ...

  5. php笔记08:数据库编程---使用php的MySQL扩展库操作MySQL数据库

    1.使用php的MySQL扩展库操作MySQL数据库: php有3种方式操作MySQL数据库 (1)mysql扩展库 (2)mysqli扩展库 (3)pdo     mysql扩展库与mysql数据库 ...

  6. linux下mysql数据库的操作

    本文主要针对linux下mysql数据库的安装,以及数据库的创建和简单的数据库操作进行说明. ①.Mysql数据库的安装: 数据库的安装分为源码安装和rpm安装. 当然对于老手来说需要进行一些自定义的 ...

  7. mysql的常用操作的封装

    1.概述: 为了把繁琐的操作简化成简单的类,设计了2个类用来封装了mysql的常用操作,以便使用者可以方便地使用. 2.组成 1)数据库操作类CDatabaseConnect 2)SQL对象类CSql ...

  8. C语言对mysql数据库的操作

    原文:C语言对mysql数据库的操作 这已经是一相当老的话题.不过今天我才首次使用,把今天的一些体会写下来,也许能给一些新手带来一定的帮助,更重要的是供自己今后忘记的怎么使用而进行查阅的! 我们言归正 ...

  9. MySQL查询in操作 查询结果按in集合顺序显示_Mysql_脚本之家

    body { font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI ...

  10. [Sqoop]利用sqoop对mysql运行DML操作

    业务背景 利用sqoop对mysql进行查询.加入.删除等操作. 业务实现 select操作: sqoop eval \ --connect jdbc:mysql://127.0.0.1:3306/m ...

随机推荐

  1. VS2005 添加lib 的方法

    应用程序使用外部库时需要进行加载,两种库的加载本质上都是一样:提供功能和功能的定义.vs2005 c++ 项目设置外部库方法如下:1. 添加编译所需要(依赖)的 lib 文件     在"项 ...

  2. Android 插件化方案(动态加载)总结

    1.作用 大多数Android开发人员开始接触这个问题是因为 App 爆棚了,方法数超过了一个 Dex 最大方法数 65535 的上限,因而便有了插件化的概念,将一个 App 划分为多个插件(Apk ...

  3. jlink烧写Nor Flash时出错正确解决方法汇总:PC of target system has unexpected value after programming

    成都国嵌的课程:国嵌体验入门班-2-1(开发板系统安装-Jlink方式).rar毒害了不少人,那种直接烧写nor flash,不进行任何配置的方法,能够成功纯属偶然,他自己在视频中烧写时也出现了两次错 ...

  4. Caused by: java.lang.ClassNotFoundException: org.springframework.expression.ExpressionParser

    1.错误描述 usage: java org.apache.catalina.startup.Catalina [ -config {pathname} ] [ -nonaming ] { -help ...

  5. 谈下spring下的 aop日志记录

    在我们开发当中  我们需要对系统用户行为和 系统异常信息有个统一记录  以便后期的 用户行为分析和bug修复   当我们有这个需求时  我们的通常采取方式很多 1.比如我们定义一个规范 开发一个接口 ...

  6. web开发中对缓存的使用

    很久没有发表随笔了,最近工作不是太忙,抽点时间 给大家谈谈缓存吧 ; 在我从事web开发的几年实践中  接触了缓存技术 也是比较多的,在最初的 项目当中 我们用到 hibernate 的 一二级缓存, ...

  7. CF#418 Div2 D. An overnight dance in discotheque

    一道树形dp裸体,自惭形秽没有想到 首先由于两两圆不能相交(可以相切)就决定了一个圆和外面一个圆的包含关系 又可以发现这样的树中,奇数深度的圆+S,偶数深度的圆-S 就可以用树形dp 我又写挫了= = ...

  8. JavaScript设计模式(10)-观察者模式

    观察者模式 1. 介绍 发布者与订阅者是多对多的方式 通过推与拉获取数据:发布者推送到订阅者或订阅者到发布者那边拉 使并行开发的多个实现能彼此独立地进行修改 其实我们在前端开发中使用到的时间监听就是浏 ...

  9. 初入前端框架bootstrap--Web前端

    Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前 ...

  10. Java虚拟机的锁优化

    1 锁偏向.当现成请求一个对象锁时,如果获得锁,则该对象锁进入偏向模式,当该线程再次请求该对象的锁时,无需再做任何同步操作. 可通过在Java虚拟机中开启参数-XX:+UseBasedLock开启偏向 ...