一个网络管理员应该掌握的mysql管理命令

一、 数据库基本管理:

1、 登陆及退出数据库:

clip_image002

将root密码设置:pwd@123,并在次登陆(使用mysqladmin):

clip_image004

clip_image006

clip_image008

2、 显示数据库结构:

查看数据库中的列表信息:

命令格式:SHOW DATABASES;

clip_image010

查看数据库中的数据表信息:

命令格式:SHOW TABLES;

clip_image012

查看mysql中user表对应的文件数据:

clip_image014

显示数据表的结构:

DESCRIBE [数据库名。]表名;

clip_image016

3、 数据库的创建与删除:

创建新的数据库:

命令格式:CREATE DATABASE 数据库名

创建一个名为auth的数据库;

clip_image018

这时在/usr/local/mysql/var/下会多出一个auth的目录:clip_image020

创建新的数据表:

命令格式:CREATE TABLE 表名:

在auth数据库中创建users的表,包括user_name、user_passwd两个字段,均为非空字符串,初始密码为123123,其中user_name字段被设置为关键索引字段(PRIMARY KEY).

clip_image022

clip_image024

当重复创建时会提示已经存在:

clip_image026

删除数据表:

命令格式:DROP TABLE [数据库.]表名

删除数据库auth中的表users:

clip_image028

删除一个数据库:

命令格式:DROP DATABASE 数据库

删除auth数据库:

clip_image030

4、 数据录入与维护:

插入新数据记录:

命令格式:INSERT INTO 表名(字段1,字段2,……)VALUES (字段1,字段2,……)

恢复已经删除的auth数据库和表users:clip_image032

在auth库下的users表中插入zhangsan、lisi记录,密码为123、321.:

clip_image034

查询数据记录:

命令格式:SELECT 字段1,字段2,……FROM 表名 WHERE 条件表达式

在auth库的users表中,查看所有的数据记录:

clip_image036

在auth库的users表中,查询用户名为zhangsan的记录,输出用户名和密码字段:

clip_image038

查表中的前十行的数据:
mysql 没有top的用法。取而代之的是limit
语法为:limit m,n
省略n就可以得到要的效果了。
select * from table1 limit 2
clip_image040

修改数据记录:

命令格式:UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2,……] WHERE 条件表达式。

将数据库中的用户lisi的密码更改为123456:

clip_image042

更改root管理员的密码,更改完后执行FLUSH PRIVILEGES语句刷新用户授权信息:

clip_image044

删除数据记录:

DELETE FROM 表名 WHERE 条件表达式

在auth库的users表中,删除name字段的值为lisi的记录:

clip_image046

为安全起见删除MySQL的空用户:

clip_image048

二、 维护数据库(备份与恢复)及用户权限:

1、 数据库备份:

MySQL数据库的备份可以使用多种方式,一直是直接备份/var/local/myslq/var比较快捷,二是使用mysqldump命令备份。使用mysqldump命令导出的SQL脚本文件可以再不同版本的MySQL上使用、当升级时可使用。mysqldump可以完成全部数据库、指定数据库、数据表的备份。

命令格式:mysqldump –u 用户名 –p 密码 [options] [数据库名] [表名] > /备份路径/备份文件名。

备份整个auth数据库:

clip_image050

备份数据库mysql中的user表、host表:

clip_image052

备份数据库MySQL服务器中的所有数据库内容(添加“--all-databases”)当需要备份的数据较多时可使用‘--opt’选项进行优化,加快备份速度:

clip_image054

clip_image056

2、 数据库恢复:

恢复可以直接使用mysql命令导入即可、当然是针对mysqldump导出的sql脚本:

命令格式:mysql –u root –p [数据库名] < /备份路径/备份文件名

备份文件mysql-all.sql包括所有的(或多个)数据库信息时,执行mysql导入时可以不指定数据库名:

clip_image058

clip_image060

备份文件只包含单个数据库或单个数据表时,执行mysql导入时需要指定目标数据库名称:

clip_image062

3、 用户权限设置:

数据库授权:

GRANT语句是用来创建用户并授权的最常用的语句,当指定的用户不存在时,GRANT语句将会创建新的用户,否则用于修改用户信息。

命令格式:DRANT 权限列表 ON 数据库名。表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’]

使用时的注意事项:

权限列表:使用ALL关键字代表全部权限,同时授于多个权限时“,”分割,如:“select,insert,update,delete”。

表名:可使用通配符“*”表示指定数据库中的所有表。

用户名@来源地址:用来设置谁能连接,能从哪里连接。用户名不能使用通配符,但可以使用两个连续的单引号“‘’”表示空字符,匹配任何用户。来源地址表示连接数据库的客户机地址,可使用“%”作通配符,匹配某个域内的所有地址(如%@abc.com),或使用带掩码标记的网络地址(如192.168.1.0/24)。

IDENTFIED BY:用于设置用户的连接数据库时使用的密码,密码经过加密后存储于mysql库的user表中,省略时新用户的密码将为空。

授权数据库用户scf,允许其从本机连接到MySQL服务器,只能查看mysql库中的user表,使用密码为“123”进行验证;切换到其他终端,使用scf连接数据库、当查看非授权表将被拒绝:

clip_image064

clip_image066

授权admin 1,允许其从本机连接MySQL服务器,对auth库中的所有表具有完全的权限,使用密码“456”验证:

clip_image068

授权admin2,允许其从网段192.168.1.0/24中访问MySQL服务器,可以查询auth库中的所有表,使用“678”进行验证。

clip_image070

授权admin3,允许其从abc.com域内的任何主机访问MySQL服务器,对auth库中的所有表具有SELECT、INSERT权限,使用“321”进行验证。

clip_image072

查看权限:

命令格式:SHOW GRANTS FOR 用户名@域名或IP

查看数据库用户root从服务器本机进行连接时的权限:

clip_image074

查看数据库用户admin3从abc.com域内的客户机访问MySQL服务器的权限:

clip_image076

撤销权限:

命令格式:REVOKE 权限列表 ON 数据库.表名 FROM 用户名@域名或IP

撤销数据库用户admin3从abc.com域访问数据库auth的所有权限:

clip_image078

猜你喜欢

转载自blog.51cto.com/14380057/2407774