简介

  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. php学习笔记位运算

    位运算 源码:用二进制表示一个数,这个码就是源码. 比如2====00000000 00000000 0000000 00000010 正数的反码 源码 补码都一样 负数的源码是符号位取反.第一个位  ...

  2. R语言︱大数据集下运行内存管理

    在实操时出现以下的问题: Error: cannot allocate vector of size 2.9GB 大神指导(http://bbs.pinggu.org/thread-3682816-1 ...

  3. vxWorks BSP主要文件目录的组成及主要文件的作用

    vxWorks BSP主要文件目录的组成及主要文件的作用 1.目录target/config/All: 这个目录下的文件是所有BSP文件共享的,不是特别需要不要更改里面的任何文件. a.configA ...

  4. linux下直接拷贝新版本R

      如果要使用新版本的R,除了直接安装,也可以直接拷贝R的文件夹.这样既可以保留原始的R版本和R包,也可以使用新版本的R和R包,R包存放在R目录下的library文件夹. 文件放路径 R: /usr/ ...

  5. freemarker获取封装类中对象的属性(六)

    freemarker获取封装类中对象的属性 1.设计思路 (1)封装学生类 (2)创建数据模型 (3)新建student.ftl (4)运行Junit测试文件,生成HTML文件 2.封装学生类 Stu ...

  6. Linux之shell典型应用之脚本实现

    一. 提取Linux操作系统信息 二. 获取操作系统运行状态 三. 分析应用状态 四. 应用日志分析 第一章:VIM编辑器设置 一.语法高亮     syntax on/off 二.显示行号 set ...

  7. 由会话信息保存认识ThreadLocal

    这次想总结ThreadLocal这个东西,也是由于项目中使用到了它去帮助保存会话信息.传统的(或者说我在学校的时候)方法,大多是用服务端的session保存会话,与浏览器端的cookie协作去追踪这个 ...

  8. 利用Python爬虫爬取淘宝商品做数据挖掘分析实战篇,超详细教程

    项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 项目目的 1. 对商品标题进行文本分析 词云可视化 2. ...

  9. MySQL配置文件

    [mysqld]datadir=/usr/local//mysql/data    #数据存放位置socket=/var/lib/mysql/mysql.sockuser=mysqllower_cas ...

  10. mysql mariadb 删除表中的数据时数据库变大

    删除表中数据以前 [root@RM uar3]# du -sh * 3.3G apache-tomcat-7.0.54 150M instalRM4UAR 0 mariadb 903M mariadb ...