实践应用篇
用户管理
增加用户:create user 新用户名 IDENTIFIED By ‘密码’;
删除用户:drop user 用户名;
账户重命名:rename user 旧名 to 新名;
权限管理——GRANT和REVOKE命令
全局层级——适用于一个给定服务器中的所有数据库。这些权限存储在表mysql.user中。
数据库层级——此权限适用于一个给定数据库中的所有目标。这些权限存储在mysql.db和mysql.host表中。
表层级——适用于一个给定表中的所有列。这些权限存储在mysql.tables_priv表中。
列层级——适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。
下面,创建一个管理员,以此来讲解这两个命令的用法:
grant all
on *
to mr identified by 'mr'
with grant option;
以上命令创建一个名为mr,密码为mr的用户,并授予他所有权限,切允许他向其他人授予某些权限。
如果不希望此用户在系统中存在,可以这样:
revoke all privileges,grant
from fred;
现在,创建一个,没有任何权限的常规用户mrsoft,并授密码为“magic123”。
grant ueage
on books.*
to mrsoft identified by 'magic123';
可以为用户mrsoft授予适当权限:
grant select,insert,update,delete,index,alter,create,drop
on book.*
to mrsoft;
对用户授权过程,不需要指定用户的密码。
如果认为用户mrsoft权限过高,可以这样:
revoke alter,create,drop
on books.*
from mrsoft;
当用户mrsoft不需要再使用数据库时,可撤销其所有权限:
revoke all
on books.*
from mrsoft;
上面是网上浏览较多的博主写的方法,但是不知道为什么,我写出来后运行不了,一直报错,我再提供一种方法吧:
//创建新用户
grant usage on *.* to '用户名' @'localhost' identified by '密码' with grant option;
//授权
grant 权限(如:select,insert,delete,create,drop) on 表名 .* to '用户名' @'localhost' identified by '密码';
//权限生效
flush privileges; (刷新)
代码中的localhost是代表“主机”,若是表示“全部电脑”,可用:%
权限何时生效——修改后一定要刷新!
有3种方式:1.flush privileges;
2.mysqladmin flush-privileges (cmd中运行)
3.mysqladmin reload (cmd中运行)
用户密码问题
1.cmd中指定——mysqladmin -u user_name -h host_name password ‘newpwd’;
2.set password for ‘jeffrey’@’%’ =password(‘biscuit’);
jeddrey——匿名用户连接,若不是,则for语句可省去;
3.更改已有账户密码:update user set password=password(‘新密码’);
提示:1.操作完成后一定要刷新权限
2.当使用set password,insert或update指定账户密码时,必须用password()函数加密
如何导入、导出数据库?
window下:
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u dbuser -p dbname > dbname.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u dbuser -p dbname users> dbname_users.sql
3.导出一个数据库结构
mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,如
mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:/dbname.sql
linux下:
一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql
注:/usr/local/mysql/bin/ —> mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>create database abc;
2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql
本文同步分享在 博客“行舟客”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。