IT审计与灾备 4月24日 星期三 20:00 云祺视频号准时直播
vinchin linked
delta 扫码预约直播,观看精彩内容!
closed
logo
关于我们

技术分享

技术分享 MySQL用户管理、常用sql语句、mysql数据库备份恢复

MySQL用户管理、常用sql语句、mysql数据库备份恢复

2021-05-17

五十三、MySQL用户管理、常用sql语句、mysql数据库备份恢复

一、MySQL用户管理

(一)MYSQL创建用户及授权

# mysql -uroot -p12345

mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '13579';

//这个grant语句不会记录到命令历史,因为不安全。

grant:授权;

all:所有权限,查看,创建,删除等;

前面的*:库名,可以写成mysql.*,就是对mysql所有的表,*.*就是所有;

'user1':用户;

'127.0.0.1':指定用户只能通过这个IP来登录,来源IP,可以写成%,就是通配所有IP都可以

identified by:指定它的密码。

# mysql -uuser1 -p13579      测试,登录不进,因为它默认使用的是sock

Warning: Using a password on the command line interface can be insecure.

ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)

# mysql -uuser1 -p13579 -h127.0.0.1

//指定它的来源IP,就登录上了,因为授权的对象是这个127.0.0.1。

授权localhost(本地):# mysql -uroot -p12345

mysql> grant all on *.* to 'user1'@'localhost' identified by '13579';

把127.0.0.1改成localhost,重新授权。

#  mysql -uuser1 -p13579

//这下不加-h也能登录了,因为localhost针对的就是sock。


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

//针对db1这个库的所有表。

grant all on db1.* to 'user3'@'%' identified by 'password';

//db1这个库的所有表,所有IP都可以登录user3。


show grants;     查看所有授权;

show grants for user1@127.0.0.1;   这么写查看指定用户的授权。

show grants for user2@192.168.93.130;

+-------------------------------------------------------------------------------------------------------------------+

| Grants for user2@192.168.93.130                                                                                |

+-------------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'user2'@'192.168.93.130' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.93.130'         |

+-------------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)


//当你不仅需要在93.130上登,还要在93.131上登的时候,就要把授权再全部做一遍,就是把上面标红的语句复制把93.130改成93.131即可。

mysql> GRANT USAGE ON *.* TO 'user2'@'192.168.93.131' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19'

-> ;

Query OK, 0 rows affected (0.00 sec)


mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.93.131'

-> ;

Query OK, 0 rows affected (0.00 sec)

mysql> show grants for user2@192.168.93.131;

+-------------------------------------------------------------------------------------------------------------------+

| Grants for user2@192.168.93.131                                                                                |

+-------------------------------------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'user2'@'192.168.93.131' IDENTIFIED BY PASSWORD '*2470C0C06DEE42FD1618BB99005ADCA2EC9D1E19' |

| GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.93.131'         |

+-------------------------------------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)


当输错了命令或者要退出一个界面,输入分号;再回车即可退出。


二、常用sql语句

select:查看

select count(*) from mysql.user;

count (*):查找后面这个表的行数;

select * from mysql.db;

//这个操作不建议这么用,如果这个表里很多内容就会很耗时耗资源,也很慢。

select db from mysql.db;

//这里前面的db是个字段,下面这句是两个字段也可以,用逗号隔开。

select db,user from mysql.db;

select * from mysql.db where host like '192.168.%'\G;

//模糊查询,like:模糊匹配。

insert:插入

insert into db1.t1 values (1,'abc');

//id=1,name=abc,这个abc是字符串,要加上单引号,纯数字可以不加

mysql> select * from db1.t1;

+------+------+

| id   | name |

+------+------+

|    1 | abc    |

+------+------+

1 row in set (0.00 sec)


update:更改

update db1.t1 set name='aaa' where id=1;

update db1.t1 set id=2 where name='aaa';  反向改id

mysql> select * from db1.t1;

+------+------+

| id   | name |

+------+------+

|    1 | aaa  |

|    1 | aaa  |

|    1 | aaa  |

+------+------+

3 rows in set (0.00 sec)

//3行更改


truncate和drop尽量少做,执行前一定要谨慎。

truncate:清空

truncate table db1.t1;   清空表内数据

drop:删除

delete from db1.t1 where id=2;   删除这个表内id=2的内容

drop table db1.t1;       删除表

drop database db1;    删除数据库


三、mysql数据库备份恢复

备份库 mysqldump -uroot -p12345 mysql > /tmp/mysqlbak.sql

恢复库 mysql -uroot -p12345 mysql < /tmp/mysqlbak.sql

# mysql -uroot -p12345 -e "create database mysql2";

//创建个mysql2的数据库

# mysql -uroot -p12345 mysql2 < /tmp/mysqlbak.sql

# mysql -uroot -p12345 mysql2    这样连接进去的就是mysql2这个数据库


备份表 mysqldump -uroot -p12345 mysql user > /tmp/user.sql

//库后面写个表名字

恢复表 mysql -uroot -p12345 mysql < /tmp/user.sql

//恢复时只要写库名即可

备份所有库 mysqldump -uroot -p -A > /tmp/123.sql

# mysqldump -uroot -p12345 -A > /tmp/mysql_all.sql

-A:all

只备份表结构 mysqldump -uroot -p12345 -d mysql > /tmp/mysql.sql

# mysqldump -uroot -p12345 -d mysql2 > /tmp/mysql2.sql



云祺备份软件,云祺容灾备份系统,虚拟机备份,数据库备份,文件备份,实时备份,勒索软件,美国,图书馆
  • 标签:
  • 其他

您可能感兴趣的新闻 换一批

现在下载,可享30天免费试用

立即下载