mysql算法_MySQL

数据库的高级操作

MySQL提供了一个mysqldump命令,它可以实现数据的备份

数据的备份

1、备份单个数据库

mysqldump -uusername -ppassword dbname [tbname1 [tbname2…]]>filename.sql

2、备份多个数据库

mysqldump –uusername –ppassword -–database dbname1 [dbname2 dbname3…]

>filename.sql

3、备份所有数据库

mysqldump –uusername –ppassword -–all-databases>filename.sql

数据的还原

数据库中的数据遭到破坏时,可以通过备份好的数据文件对数据进行还原,这里所说的还原是指还原数据库中的数据,而库是不能被还原的。

mysql –uusername –ppassword [dbname]

1、首先需要使用DROP语句将数据库chapter08删除

DROP DATABASE chapter08;

2、由于库是不能被还原的,因此先要创建一个数据库chapter08

CREATE DATABASE chapter08;

3、使用mysql语句还原C:/backup目录下的chapter08_20140305.sql文件

mysql -uroot -pitcast chapter08

4、为了验证数据已经还原成功,可以使用SELECT语句查询chapter08中的数据SELECT * FROM student;

用户管理

user表

user表是最重要的一个权限表,它记录了允许连接到服务器的账号信息以及一些全局级的权限信息。

user表中有42个字段,大致可分为4类用户列、权限列、安全列、资源控制列

创建普通用户

1、使用GRANT语句创建用户,是创建用户最常用的方法

GRANT privileges ON database.table

TO ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD]’password’]

[,’username’@’hostname [IDENTIFIED BY [PASSWORD]’password’]] …

2、使用CREATE USER语句创建用户

CREATE USER ‘username’@’hostname'[IDENTIFIED BY [PASSWORD]’password’]

[,’username’@’hostname'[IDENTIFIED BY [PASSWORD]’password’]]…

3、使用INSERT语句创建用户

INSERT INTO mysql.user(Host,User,Password,ssl_cipher、x509_issuer、x509_subject)

VALUES(‘hostname’,’username’,PASSWORD(‘password’),”,”,”);

删除普通用户

1、使用DROP USER语句删除用户

DROP USER ‘username’@’hostname'[,’username’@’hostname’];

2、使用DELETE语句删除用户

DELETE FROM mysql.user WHERE Host=’hostname’ AND User=’username’;

修改用户密码

root用户修改root用户密码

1、使用mysqladmin命令修改

mysqladmin –u username [–h hostname] –p password new_password

2、使用UPDATE语句修改

UPDATE mysql.user set Password=PASSWORD(‘new_password’)

WHERE User=’username’ and Host=’hostname’;

3、使用SET语句修改

SET PASSWORD=PASSWORD(‘new_password’);

root用户修改普通用户密码

1、使用GRANT USAGE语句修改

GRANT USAGE ON *.* TO ‘username’@’localhost’ IDENTIFIED BY [PASSWORD]’new_password’;

2、使用UPDATE语句修改

UPDATE mysql.user set Password=PASSWORD(‘new_password’)WHERE User=’username’ and Host=’hostname’;

3、使用SET语句修改

SET PASSWORD=PASSWORD(‘new_password’);

普通用户修改密码

SET PASSWORD=PASSWORD(‘new_password’);

如何解决root用户密码丢失问题

停止MySQL服务

net stop mysql

使用–skip-grant-tables启动MySQL服务

mysql –skip-qrant-tables

登录MySQL服务器

重新开启一个运行对话框,在运行对话框中登录MySQL服务器,具体命令如下:

mysql -u root

使用UPDATE语句设置root用户密码

UPDATE mysql.user SET Password=PASSWORD(‘itcast’) WHERE User=’root’ AND Host=’localhost’;

加载权限表

FLUSH PRIVILEGES;

上述步骤执行完,可以使用EXIT或\q命令退出服务器,然后使用新密码重新登录。至此,便完成了root用户的密码设置。

权限管理

MySQL的权限

MySQL中的权限信息被存储在mysql数据库的user、db、host、tables_priv、column_priv和procs_priv表中,当MySQL启动时会自动加载这些权限信息,并将这些权限信息读取到内存中。

授予权限

我们之所以可以对数据进行增删改查的操作,是因为数据库中的用户拥有不同的权限,合理的授权可以保证数据库的安全。

GRANT privileges [(columns)][,privileges[(columns)]] ON database.table

TO ‘username’@’hostname’ [IDENTIFIED BY [PASSWORD]’password’]

[,’username’@’hostname’ [IDENTIFIED BY [PASSWORD]’password’]] …

[WITH with_option [with_option]…]

privileges:表示权限类型。

columns:参数表示权限作用于某一列,该参数可以省略不写,此时权限作用于整个表,username:表示用户名。

hostname表示主机名。

IDENTIFIED BY:参数为用户设置密码。

PASSWORD参数为关键字.

password为用户的新密码。WITH关键字后面可以带有多个参数with_option,这个参数有五个取值。

GRANT OPTION:将自己的权限授予其他用户MAX_QUERIES_PER_HOUR count:设置每小时最多可以执行多少次(count)查询。

MAX_UPDATES_PER_HOUR count:设置每小时最多可以执行多少次更新。

MAX_CONNECTIONS_PER_HOUR count:设置每小时最大的连接数量。

lMAX_USER_CONNECTIONS:设置每个用户最多可以同时建立连接的数量。

查看权限

SHOW GRANTS FOR ‘username’@’hostname’;

收回权限

为了保证数据库的安全性,需要将用户不必要的权限收回

1、收回用户指定权限

REVOKE privileges [columns][,privileges[(columns)]] ON database.table

FROM ‘username’@’hostname'[,’username’@’hostname’] …

2、收回用户全部权限

REVOKE ALL PRIVILEGES,GRANT OPTION

FROM  ‘username’@’hostname’ [,’username’@’hostname’] …

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值