一个网络管理员应该掌握的mysql管理命令
一、 数据库基本管理:
1、 登陆及退出数据库:
将root密码设置:pwd@123,并在次登陆(使用mysqladmin):
2、 显示数据库结构:
查看数据库中的列表信息:
命令格式:SHOW DATABASES;
查看数据库中的数据表信息:
命令格式:SHOW TABLES;
查看mysql中user表对应的文件数据:
显示数据表的结构:
DESCRIBE [数据库名。]表名;
3、 数据库的创建与删除:
创建新的数据库:
命令格式:CREATE DATABASE 数据库名
创建一个名为auth的数据库;
这时在/usr/local/mysql/var/下会多出一个auth的目录:
创建新的数据表:
命令格式:CREATE TABLE 表名:
在auth数据库中创建users的表,包括user_name、user_passwd两个字段,均为非空字符串,初始密码为123123,其中user_name字段被设置为关键索引字段(PRIMARY KEY).
当重复创建时会提示已经存在:
删除数据表:
命令格式:DROP TABLE [数据库.]表名
删除数据库auth中的表users:
删除一个数据库:
命令格式:DROP DATABASE 数据库
删除auth数据库:
4、 数据录入与维护:
插入新数据记录:
命令格式:INSERT INTO 表名(字段1,字段2,……)VALUES (字段1,字段2,……)
恢复已经删除的auth数据库和表users:
在auth库下的users表中插入zhangsan、lisi记录,密码为123、321.:
查询数据记录:
命令格式:SELECT 字段1,字段2,……FROM 表名 WHERE 条件表达式
在auth库的users表中,查看所有的数据记录:
在auth库的users表中,查询用户名为zhangsan的记录,输出用户名和密码字段:
查表中的前十行的数据:
mysql 没有top的用法。取而代之的是limit
语法为:limit m,n
省略n就可以得到要的效果了。
select * from table1 limit 2
修改数据记录:
命令格式:UPDATE 表名 SET 字段名1=字段值1[,字段名2=字段值2,……] WHERE 条件表达式。
将数据库中的用户lisi的密码更改为123456:
更改root管理员的密码,更改完后执行FLUSH PRIVILEGES语句刷新用户授权信息:
删除数据记录:
DELETE FROM 表名 WHERE 条件表达式
在auth库的users表中,删除name字段的值为lisi的记录:
为安全起见删除MySQL的空用户:
二、 维护数据库(备份与恢复)及用户权限:
1、 数据库备份:
MySQL数据库的备份可以使用多种方式,一直是直接备份/var/local/myslq/var比较快捷,二是使用mysqldump命令备份。使用mysqldump命令导出的SQL脚本文件可以再不同版本的MySQL上使用、当升级时可使用。mysqldump可以完成全部数据库、指定数据库、数据表的备份。
命令格式:mysqldump �Cu 用户名 �Cp 密码 [options] [数据库名] [表名] > /备份路径/备份文件名。
备份整个auth数据库:
备份数据库mysql中的user表、host表:
备份数据库MySQL服务器中的所有数据库内容(添加“--all-databases”)当需要备份的数据较多时可使用‘--opt’选项进行优化,加快备份速度:
2、 数据库恢复:
恢复可以直接使用mysql命令导入即可、当然是针对mysqldump导出的sql脚本:
命令格式:mysql �Cu root �Cp [数据库名] < /备份路径/备份文件名
备份文件mysql-all.sql包括所有的(或多个)数据库信息时,执行mysql导入时可以不指定数据库名:
备份文件只包含单个数据库或单个数据表时,执行mysql导入时需要指定目标数据库名称:
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连接数据库、当查看非授权表将被拒绝:
授权admin 1,允许其从本机连接MySQL服务器,对auth库中的所有表具有完全的权限,使用密码“456”验证:
授权admin2,允许其从网段192.168.1.0/24中访问MySQL服务器,可以查询auth库中的所有表,使用“678”进行验证。
授权admin3,允许其从abc.com域内的任何主机访问MySQL服务器,对auth库中的所有表具有SELECT、INSERT权限,使用“321”进行验证。
查看权限:
命令格式:SHOW GRANTS FOR 用户名@域名或IP
查看数据库用户root从服务器本机进行连接时的权限:
查看数据库用户admin3从abc.com域内的客户机访问MySQL服务器的权限:
撤销权限:
命令格式:REVOKE 权限列表 ON 数据库.表名 FROM 用户名@域名或IP
撤销数据库用户admin3从abc.com域访问数据库auth的所有权限: