zoukankan      html  css  js  c++  java
  • mysql基本管理

    目录

    一、 MySQL数据库基本管理

    1.1 数据库连接管理

    1. mysql命令

    • 从命令行调用:
      mysql [options]

    • 查看帮助信息
      mysql --help(或-?)

    • 查看版本
      mysql --version(或-V)

    • 常见的选项语法格式:

      • 长格式(--[options])
      • 短格式(-[options])
    • 通过制定的主机进行连接

      • 本地连接到在同一主机上运行的服务器
      • 远程连接到在其他主机上运行的服务器
    • 连接选项

      -u:用户名
      -p:密码
      -h:远程连接
      -P:指定端口号
      -S:指定socket文件位置(使用yum或二进制包安装的默认在/tmp/mysql.sock)

    1.2 数据库启动流程

    MySQL的单进程是在/application/mysql/bin/mysqld中
    /application/mysql/support-files/mysql.server复制到/etc/init.d中是为了方便启动。
    /application/mysql/bin/mysqld_safe脚本路径

    1.3 关闭数据库

    /etc/init.d/mysqld stop
    mysqladmin shutdown
    

    不要暴力停止数据库,会引发故障问题。
    常见错误代码
    也可以使用peeror命令查看代码信息

    1.4 MySQL配置文件

    1.4.1 配置文件内容

    路径:/etc/my.cnf
    不仅可以影响实例启动,还影响客户端程序

    • 服务器:
    [mysqld]
    ......
    [mysqld_safe]
    ......
    [server]
    #不常用
    
    • 客户端
    [mysql]
    ......
    [mysqldump]
    ......
    

    服务器端:

    [mysqld]
    **设置路径**
    
        datadir
        basedir
        socket
        log路径
        ...
    
    **系统变量**
    
        port
        server-id
        内存参数
        ...
    **注意:修改完配置文件后需要重启生效**
    

    客户端配置:

    [client]
    [mysql]
    socket=
    user=
    password=
    #修改客户端的配置不需要重启
    

    1.4.2 配置文件读取顺序:

    注意:如果使用./bin/mysqld_safe 守护进程启动mysql数据库时,使用了--defaults-file=<配置文件的绝对路径>参数,这时只会使用这个参数指定的配置文件。

    1.5 用户管理

    1.5.1 数据库中查询用户:

    mysql> select user,host,password from mysql.user;
    +------+-----------+-------------------------------------------+
    | user | host      | password                                  |
    +------+-----------+-------------------------------------------+
    | root | localhost | *FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |
    | root | 127.0.0.1 |                                          |
    +------+-----------+-------------------------------------------+
    2 rows in set (0.05 sec)
    

    1.5.2 用户的属性

    • 用户的作用:
      • 用户登录
      • 用于管理数据库及数据
    • 权限:
      • 对数据库的读、写等操作
      • (insert update、select等)
    • 角色:
      • 数据库定义好的一组权限的定义
      • (all privileges、replication slave等)
    • 权限范围:
      • 全库级别:.
      • 单库级别:user01.*
      • 单表级别:user01.t1

    1.5.3 用户操作

    • 创建用户
      格式
      create user '用户名'@'主机' identified by '密码';
      实例
    create user 'user01'@'10.0.0.%' identified by '123456';
    或
    create user 'user011'@'10.0.0.0/255.255.255.0' identified by '123456';
    
    • 查看权限
    mysql> show grants for user01@'10.0.0.%';
    +--------------------------------------------------------------------------------------------------------------+
    | Grants for user01@10.0.0.%                                                                                  |
    +--------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'user01'@'10.0.0.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
    +--------------------------------------------------------------------------------------------------------------+
    1 row in set (0.00 sec)
    
    • 删除用户
    drop user user011@'10.0.0.0/255.255.255.0';
    特殊的删除方法:
    delete from mysql.userwhere user='user01' and host='localhost';
    强制删除后刷新授权表:
    flush privileges;
    
    • 用户授权
    grant all on user01.* to 'user01'@'10.0.0.%';
    

    在创建用户的同时进行授权:

    grant all on user01.* to user@'10.0.0.%' identified by '123456';
    

    收回权限:

    revoke all on user01.* from user01@'10.0.0.%';
    

    收回权限要注意收回的级别
    常用的权限

    INSERT,SELECT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE
    

    问题:
    在给用户授权时,权限冲突的情况下以谁为准?

    mysql> show grants for user01@'10.0.0.%';
    +--------------------------------------------------------------------------------------------------------------+
    | Grants for user01@10.0.0.%                                                                                  |
    +--------------------------------------------------------------------------------------------------------------+
    | GRANT USAGE ON *.* TO 'user01'@'10.0.0.%' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9' |
    | GRANT ALL PRIVILEGES ON `user01`.* TO 'user01'@'10.0.0.%'                                                    |
    +--------------------------------------------------------------------------------------------------------------+
    2 rows in set (0.00 sec)
    

    第一行user01用户没有数据库的操作权限;但是第二行有user01这个库的操作权限。
    结论:
    用户永远以最大的权限为准。

  • 相关阅读:
    [HDU 1254] 推箱子
    [POJ 1321] 棋盘问题
    Ubuntu fcitx CPU占用率很高解决方法
    超简洁git入门
    [LightOJ 1370] Bi-shoe and Phi-shoe(欧拉函数快速筛法)
    [LightOJ 1341] Aladdin and the Flying Carpet (算数基本定理(唯一分解定理))
    seekg()/seekp()与tellg()/tellp()的用法详解
    绝对路径以及相对路径中的斜杠和反斜杠
    TCP滑动窗口
    TCP的三次握手和四次挥手
  • 原文地址:https://www.cnblogs.com/os-linux/p/14681593.html
Copyright © 2011-2022 走看看