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