mysql用户管理、常用语句、数据分备份恢复
发布日期:2025-04-18 05:22:47 浏览次数:15 分类:精选文章

本文共 2588 字,大约阅读时间需要 8 分钟。

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。

执行完成后,输出如下信息:

Query OK, 0 rows affected (0.00 sec)

验证用户登录:

mysql -uuser1 -h127.0.0.1 -p

输入密码后,应成功登录 MySQL。

指定登录socket

如果需要用户默认使用socket登录(如本地登录),重新授权用户:

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

退出root用户后,使用 user1 用户登录:

mysql -uuser1 -p

此时,默认使用本地socket登录,无需指定IP。


针对具体的权限授权

根据需求,指定用户的权限。例如,授予 user2 用户在 db1 库中的特定权限:

grant SELECT, UPDATE, INSERT on db1.* to 'user2'@'192.168.159.132' identified by '123456';
  • SELECT, UPDATE, INSERT 表示授予对应的操作权限。
  • db1.* 表示针对 db1 库中的所有表。
  • 192.168.159.132 指定用户只能通过该IP登录。

执行完成后,输出如下信息:

Query OK, 0 rows affected (0.00 sec)

查看用户授权信息

查看当前用户的授权信息:

show grants;

查看指定用户的授权信息:

show grants for user1@127.0.0.1;

输出示例:

+--------------------------------------------------------------------------------------------------------------------+| Grants for user1@127.0.0.1                                                                                           |+--------------------------------------------------------------------------------------------------------------------+| GRANT USAGE ON *.* TO 'user1'@'127.0.0.1' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' || GRANT SELECT, INSERT, UPDATE ON `db1`.* TO 'user1'@'127.0.0.1' |+--------------------------------------------------------------------------------------------------------------------+2 rows in set (0.00 sec)

更改授权

在实际应用中,当用户需要在多个IP上登录时,应分别执行授权命令。例如,将 user2 用户的授权扩展到 192.168.159.133

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

验证用户权限:

show grants for user2@'192.168.159.133';

常用SQL语句

使用MySQL执行常用操作:

  • 切换数据库:
  • use db1;
    1. 查看库中表:
    2. show tables;
      1. 查看用户数量:
      2. select count(*) from mysql.user;
        1. 查看数据库用户:
        2. select * from mysql.db where host like '%192.168.%' and db = 'db1';
          1. 创建表:
          2. create table t1 (id int(4), name char(40));
            1. 插入数据:
            2. insert into db1.t1 values(1, 'abc');
              1. 查询数据:
              2. select * from db1.t1;
                1. 更新数据:
                2. update db1.t1 set name = 'aaa' where id = 1;
                  1. 删除数据:
                  2. delete from db1.t1 where id = 1;
                    1. 删除表:
                    2. drop table t1;

                      MySQL数据库备份恢复

                      备份库

                      使用 mysqldump 创建备份:

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

                      备份所有库:

                      mysqldump -uroot -p123456 -A > /tmp/mysqlbak_all.sql

                      恢复库:

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

                      备份表

                      备份指定表:

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

                      只备份表结构:

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

                      恢复表:

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

                      以上操作可根据实际需求调整,确保数据库安全和数据完整性。

    上一篇:MySQL留疑问:left join时选on还是where?
    下一篇:MySQL用户权限配置:精细控制和远程访问的艺术!------文章最后有惊喜哦。

    发表评论

    最新留言

    第一次来,支持一个
    [***.219.124.196]2026年06月06日 19时35分00秒