一个网络管理员应该掌握的
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
的所有权限: