千家信息网

mysql用户管理、常用语句、数据分备份恢复

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,mysql用户管理创建用户并授权指定登录ip使用root用户登录录创建授权新用户:mysql> grant all on . to 'user1'@'127.0.0.1' identified by
千家信息网最后更新 2026年10月31日mysql用户管理、常用语句、数据分备份恢复

mysql用户管理

创建用户并授权

  • 指定登录ip

    使用root用户登录录创建授权新用户:
    mysql> grant all on . to 'user1'@'127.0.0.1' identified by '123456';
    // all 所有操作(增删查改)
    // 第一个 通配所有库名,第二个通配所有表名
    // user1 为用户名
    // 127.0.0.1 指定登录ip,可用通配符%表示所有ip。
    // '123456' 为user1用户的登录密码
    Query OK, 0 rows affected (0.00 sec)

    使用user1用户登录,验证:
    [root@localhost ~]# mysql -uuser1 -p
    Enter password:
    ERROR 1045 (28000): Access denied for user 'user1'@'localhost' (using password: YES)
    // 登录失败,因为mysql默认使用socket登录。需要指定地址。
    [root@localhost ~]# mysql -uuser1 -h227.0.0.1 -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    .....
    mysql>
    // 登录成功。其中grant语句是不会记录到命令历史中的。

  • 指定登录socket

    使用root用户重新对user1用户授权:
    mysql> grant all on . to 'user1'@'localhost' identified by '123456';

    退出root用户,使用user1 用户登录:
    [root@localhost ~]# mysql -uuser1 -p
    Enter password:
    Welcome to the MySQL monitor. Commands end with ; or \g.
    .....
    mysql>
    // 因为指定登录主机为localhost,所以该用户默认使用(监听)本地mysql.socket文件,不需要指定IP即可登录。

针对具体的权限授权

使用root用户登录:mysql> grant SELECT,UPDATE,INSERT on db1.* to 'user2'@'192.168.159.132' identified by '123456';// 创建user2用户,并授权其针对db1库中的所有表有SELECT,UPDATE,INSERT 权限。// user2用户仅能通过ip 192.168.159.132 登录。Query OK, 0 rows affected (0.00 sec)

查看用户授权信息:

mysql> show grants;// 查看当前用户的授权信息mysql> show grants for user1@127.0.0.1;// 查看指定用户的授权信息

更改授权

使用情况:user2用户不仅需要在192.168.159.132上登录,还需要在192.168.159.133上登录,这时候就需要把授权的命令全部在执行一遍

查看user2具有哪些权限:mysql> show grants for user2@'192.168.159.132';+--------------------------------------------------------------------------------------------------------------------+| Grants for user2@192.168.159.132                                                                                   |+--------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' || GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132'       +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)执行user2的授权命令:// 将ip改成192.168.159.133mysql>GRANT USAGE ON *.* TO 'user2'@'192.168.159.132' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'mysql> GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.132';查看user2@192.168.159.133的授权:mysql> show grants for user2@'192.168.159.133';+--------------------------------------------------------------------------------------------------------------------+| Grants for user2@192.168.159.133                                                                                   |+--------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'user2'@'192.168.159.133' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' || GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user2'@'192.168.159.133'       +--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)// 授权成功后,user3用户就可以在192.168.159.133对db1进行操作。(如不能远程链接,检查以下防火墙规则。)// user2在两个ip上登录使用的是用一个密码。// 重新授权时,权限行的内容和操作的库表能修改。

常用sql语句

先用mysql用户登录mysqlmysql> use db1; //切换到db1库Database changedmysql> show tables; //查看当前库中有哪些表。+---------------+| Tables_in_db1 |+---------------+| t1            |+---------------+1 row in set (0.00 sec)mysql> select count(*) from mysql.user;// 查看mysql库中的user表有几行+----------+| count(*) |+----------+|       15 |+----------+1 row in set (0.00 sec)mysql> select * from mysql.db \G;// 查看mysql库的db表中的所有内容// * 表示所有内容,\G是为了让输出内容整齐*************************** 1. row ***************************                 Host: %                   Db: test                 User:           Select_priv: Y          Insert_priv: Y          Update_priv: Y          Delete_priv: Y          Create_priv: Y            Drop_priv: Y           Grant_priv: N      References_priv: Y           Index_priv: Y           Alter_priv: YCreate_tmp_table_priv: Y     Lock_tables_priv: Y     Create_view_priv: Y       Show_view_priv: Y  Create_routine_priv: Y   Alter_routine_priv: N         Execute_priv: N           Event_priv: Y         Trigger_priv: Y......// 这种操作平时尽量不要用,内容多的情况下select*会比较占资源。mysql> select db from mysql.db;// 查看db这个字段,在mysql库的db表中+---------+| db      |+---------+| test    || test\_% || db1     || db1     || db1     || db1     || db1     || db1     |+---------+8 rows in set (0.00 sec)mysql> select db,user from mysql.db;// 查看db和user字段,在mysql库的db表中// 需要查看的字段之间用逗号隔开+---------+-------+| db      | user  |+---------+-------+| test    |       || test\_% |       || db1     | user2 || db1     | user3 || db1     | user4 || db1     | user2 || db1     | user3 || db1     | user2 |+---------+-------+8 rows in set (0.00 sec)mysql> select * from mysql.db where host like '192.168.%'\G; // 查看所有IP匹配192.168.%的内容,从mysql库的db表中// like  匹配,*************************** 1. row ***************************                 Host: 192.168.159.131                   Db: db1                 User: user2          Select_priv: Y          Insert_priv: Y          Update_priv: Y          Delete_priv: N          Create_priv: N            Drop_priv: N           Grant_priv: N      References_priv: N           Index_priv: N           Alter_priv: NCreate_tmp_table_priv: N     Lock_tables_priv: N     Create_view_priv: N       Show_view_priv: N  Create_routine_priv: N   Alter_routine_priv: N         Execute_priv: N           Event_priv: N         Trigger_priv: N......mysql> create table t1(`id` int(4),`name` char(40));// 在db1库下创建表ti// 有id和name两个字段Query OK, 0 rows affected (0.39 sec)mysql> insert into db1.t1 values(1,'abc');// 向t1表中添加一行数据Query OK, 1 row affected (0.00 sec)mysql> select * from db1.t1;// 查看t1表中的内容+------+------+| id   | name |+------+------+|    1 | abc  |+------+------+1 row in set (0.00 sec)// 添加数据时,字符串尽量加单引号。mysql> update db1.t1 set name='aaa' where id=1;// 更新表中id为1的那一行name 的内容。Query OK, 1 row affected (0.00 sec)Rows matched: 1  Changed: 1  Warnings: 0mysql> select * from db1.t1;+------+------+| id   | name |+------+------+|    1 | aaa  |+------+------+1 row in set (0.00 sec)mysql> delete from db1.t1 where id=1;// 删除表中id为1那一行的内容Query OK, 1 row affected (0.00 sec)mysql> select * from db1.t1;Empty set (0.00 sec)mysql> truncate db1.t1; // 清空表中的内容,表结构还在Query OK, 0 rows affected (0.09 sec)mysql> drop table t1;// 删除表,整个表都删除,包括内容和表结构Query OK, 0 rows affected (0.04 sec)mysql> drop database db1;// 删除库,整个库都删除,包括表Query OK, 0 rows affected (0.13 sec)// 平时尽量少用truncate和drop。mysql> use mysql;mysql> delete from user where User='user1' and Host='127.0.0.1';// 删除用户,在删除用户前需先指定用户表Query OK, 1 row affected (0.06 sec)

mysql数据库备份恢复

  • 备份恢复库

    [root@localhost ~]# mysqldump -uroot -p123456 mysql >/tmp/mysqlbak.sql
    // 备份指定库(mysql库)到/tmp/mysqlbak.sql文件中

    [root@localhost ~]# mysqldump -uroot -p123456 -A >/rmp/mysqlbak_all.sql
    // 备份所有库到/tmp/mysqbak_all.sql 文件中

    [root@localhost ~]# mysql -uroot -p123456 mysql< /tmp/mysqlbak.sq
    // 恢复到mysql库中。也可以恢复到新的库中(需新建库)

  • 备份恢复表

    [root@localhost ~]#mysql -uroot -p123456 mysql user > /tmp/user.sql
    // 备份指定表。在库名后空格跟表名就行

    [root@localhost ~]#mysqldump -uroot -p123456 -d mysql > /tmp/mysql_tb.sql
    // 只备份表结构

    [root@localhost ~]#mysql -uroot -p123456 mysql < /tmp/user.sql
    // 恢复的时候不需要加表名

    // 数据量小用mysqldump备份还可以,备份量大不适用。


用户 登录 内容 备份 数据 字段 权限 一行 信息 命令 文件 结构 语句 成功 两个 密码 情况 常用 管理 主机 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 山东特亿宝互联网科技有限公司 云之行互联网科技 互联网科技工作委员会 广州百单互联网科技有限公司 互联网科技有限公司图片 互联网扶贫科技 互联网科技创新企业排名 蓝色互联网科技 济南和联互联网科技有限公司 央行互联网金融科技公司 欧洲十大科技互联网公司 银川新华互联网科技职业技术培训学校图片 互联网在线教育科技创业 众安科技工业互联网合作 智帮互联网科技公司最近动向 21世纪互联网科技成就 广州智享互联网科技 长沙渺峰互联网科技有限公司 东风日产互联网科技公司叫什么 互联网科技企业文化 手冲咖啡和咖啡机区别 成都互联网科技公司 腾讯科技 互联网女皇 互联网系的金融科技公司 岳阳华臻互联网科技有限公司 赶超互联网科技 微信多开 佛山市翊博互联网络科技有限公司 每天都有哪些好的互联网科技 工业互联网科技成果转化 陕西彩京云互联网科技有限公司
0