MySQL用户管理

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_sql

创建一个普通用户并且授权

1.grant all on *.* to 'user1' identified by 'passwd';
grant all on *.* to 'user1' identified by '123456';

(创建user1用户,all表示所有权限(读、写,增、删、改、查等);*.*,前面的*表示所有的数据库,后面的*表示所有的表;identified by后面跟密码,要用单引号''引起来)

grant all on *.* to 'user1'@'指定来源ip' identified by 'passwd';
grant all on *.* to 'user1'@'127.0.0.1' identified by '123456';

(创建了一个user1的用户,并且指定了它只能通过127.0.0.1这个ip登录)


grant all on *.* to 'user1'@'%' identified by 'passwd';

(%表示通配,让所有ip都能连接)

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_mysql_02


创建用户,登录时使用sock登录,不用指定-h+ip:

grant all on *.* to 'user1'@'localhost' identified by '123456';

创建用户也可以指定数据库,和具体赋予用户什么权限:

grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.136.133' identified by 'passwd';

查看已创建的用户被赋予什么权限:

(1)已经登录了创建的用户使用:show grants

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_sql_03

(2)在其他用户下,查看指定的用户被赋予的权限:

show grants for 用户名@'被指定的ip';

show grants for user1@'127.0.0.1';

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_sql_04



mysql能不能实现备份的时候不暂停服务 mysql 备份语句_操作系统_05


通过grants:

show grants for user2@'192.168.136.133'; 出来的内容都在mysql命令中执行一遍,只修改ip,则同一个用户就可以有多个ip登录。(且密码不变)

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_mysql_06




常用sql语句

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_数据库_07

1.select count(*) from mysql.user;  //查看行数

2.select * from mysql.db; //查看表的所有内容

(这两条搜索所有内容 的命令少用,如果表的内容多,耗费资源。

  mysql的引擎:MyISAM (自动的统计(行))和InnoDB(不会自动统计(行))

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_数据库_08

如果表中我们设置引擎为MyISAM则在搜索时会很快。

3.select db,user from mysql.db;//搜索mysql.db表中的字段

4.select * from mysql.db where host like '192.168.%'; //模糊搜索


5. insert into db1.t1 values (1, 'abc'); //向db1库t1表插入数据

(插入内容有字符串要加单引号'')

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_sql_09

6. update db1.t1 set name='aaa' where id=1;//更新内容(改)

7.truncate table db1.t1; //删除db1.t1表中的数据,但是表结构不变(创表的字段不删,仅删除内容)

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_操作系统_10

8.drop table db1.t1; //删除表


9. drop database db1; //删除数据库


在命令行下执行mysql里的命令:(如创建一个库)

mysql -uroot -p123456 -e "create database mysql2"

MySQL数据库备份恢复

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_sql_11

 (在linux命令行操作,非在mysql命令下)

备份的命令:mysqldump 

1.备份库:(备份mysql下root用户的mysql库)

mysqldump-uroot -p127.0.0.1 mysql >/tmp/mysqlbak.sql
(mysqldump-uroot -p127.0.0.1 mysql 其实就是搜到内容)

恢复库

mysql -uroot -p123456  mysql < /tmp/mysqlbak.sql

(备份和恢复库或者表,其实就是先把内容搜索出来,让后重定向或者反向重定向)



2.备份表

mysqldump -uroot -p123456 mysql user > /tmp/user.sql

备份后查看备份文件:cat /tmp/user.sql

mysql能不能实现备份的时候不暂停服务 mysql 备份语句_数据库_12

(可以看到一些数据来源,和命令)


恢复表(回复表时只需要指定库就行,不用加上表名)

mysql -uroot -p123456 mysql < /tmp/user.sql

3.备份所有库 

mysqldump -uroot -p -A >/tmp/123.sql

(-A 表示所有)

只备份表结构 

mysqldump -uroot -p123456 -d mysql > /tmp/mysql.sql

(-d 表示表结构)

(只备份表结构就是可以把表的数据过滤,只备份表的结构,创建表时的)


!!!!mysqldump 备份很大的数据量时,会显得很慢!


转载于:https://blog.51cto.com/13589255/2091603