美文网首页
day02 体系结构与管理

day02 体系结构与管理

作者: 藏鋒1013 | 来源:发表于2019-06-17 22:16 被阅读0次

    数据库逻辑结构

    库:库属性

    二、基础管理

    2.1、用户管理

    2.1.1用户作用:

    1.登录
    2.管理数据库对象

    2.1.2

    用户的定义:

    用户名@'白名单'
    oldgao@'10.0.0.51'
    oldgao@'10.0.0.%'
    oldgao@'10.0.0.5%'
    oldgao@'10.0.0.0/255.255.254.0'
    oldgao@'%'
    oldgao@'oldgao.com'
    oldgao@'localhost'
    oldgao@'db01'

    常用的:

    oldgao@'10.0.0.%'
    oldgao@'10.0.0.5%'
    oldgao@'10.0.0.0/255.255.254.0'
    oldgao@'localhost'

    2.1.3用户管理

    1.创建用户
    mysql> create user oldgao@'10.0.0.%' identified by '123';
    
    2.查询用户
    mysql> select user,host,authentication_string from mysql.user;
    
    3.删除用户
    mysql> drop user oldgao@'10.0.0.%';
    
    4.修改用户
    mysql> alter user root@'localhost' identified by '123';
    

    2.2、权限管理

    2.2.1权限作用

    控制用户登陆之后能对MySQL对象做哪些命令。

    2.2.2权限的定义

    MySQL的权限定义就是SQL语句。
    ALL:
    SELECT,INSERT, 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
    ALL:以上所有权限,一般是普通管理员拥有的
    with grant option:超级管理员才具备的,给别的用户授权的功能。

    2.2.3授权管理

    (1)语法
      grant all on root. to root@'10.0.0.%' identified by '123';
      grant+权限+on+范围+ to +identified by+‘密码’
    范围:

        *.*
        root.*
        root.t1

    (2)查看用户权限

    mysql> show grants for root@'localhost';
    

    (3)回收权限

    mysql> revoke delete on zhihu.* from 'zhihu'@'10.0.0.%;'
    

    面试题:

    1.开发人员找DBA开用户,需要DBA和开发人员沟通什么?
    (1)你要做哪些权限的操作?
    (2)你要从什么地方来登录操作?
    (3)要对什么对象进行管理操作?
    2.开发人员找DBA要管理员root用户的密码,作为DBA你怎么处理?(金融公司)
    情况一:
    (1)不给
    (2)在金融公司严令禁止,举报!!!
    情况二(小公司)
    root用户是乱用,学会保护自己。
    可以提意见,生成流程。

    三、MySQL连接管理

    3.1自带的客户端工具

    mysql 参数
    -u:后加用户名
    -p:使用密码登录
    -S:指定登录用的socket
    -h:指定登录的主机IP
    -P:指定端口
    -e:执行SQL语句
    <:后接文件名

    [root@db01 ~]# mysql -uroot -p -S /tmp/mysql.sock
    [root@db01 ~]# mysql -uoldguo -p -h10.0.0.51 -P3306
    

    问题:
    怎么证明你的数据库是可用的?

    1. 证明进程和端口存在
    ps -ef |grep mysqld 
    netstat -lnp|grep mysqld 
    
    1. 验证用户远程连接性
     mysql -uoldguo -p -h10.0.0.51
    

    -e
    <

    [root@db01 ~]# mysql -uoldguo -p123  -h10.0.0.51 -e "show databases;"
    [root@db01 ~]# mysql -uroot -p <world.sql
    

    四、 MySQL 启动方式介绍

    辅助脚本方式(普通的启动关闭):

    sys-v   : /etc/init.d/mysqld  
    /etc/init.d/mysqld  start 
    
    
    systemd : /etc/systemd/system/mysqld.service
    systemctl start mysqld  
    

    维护性的启动方式:

    /application/mysql/bin/mysqld_safe  --skip-grant-tables --skip-networking &
    
    /application/mysql/bin/mysqld &
    

    五、MySQL初始化配置

    0、作用:

    控制MySQL的启动
    影响到客户端的连接

    1、预编译时进行设置(略)

    只能在编译安装中实现
    硬编译配置到程序中

    5.2、初始化配置文件(my.cnf)

    5.2.1初始还配置文件默认读取位置

    [root@db01 ~]# mysqld --help --verbose |grep "my.cnf"
    /etc/my.cnf --》 /etc/mysql/my.cnf --》 /usr/local/mysql/etc/my.cnf  --》 ~/.my.cnf
    
    --defaults-file=/opt/my.cnf 
    
    mysqld_safe 
    mysqld
    

    5.3 命令行模式

    [root@db01 ~]# mysqld_safe --defaults-file=/opt/my.cnf --socket=/tmp/asdad &
    

    5.4初始化配置文件应用

    5.4.1作用

    数据库的启动:mysqld mysqld_safe
    客户端的连接:mysql mysqldump    mysqladmin

    5.4.2书写格式

    [程序名]
    配置项=xxx
    配置项=xxx
    配置项=xxx
    配置项=xxx
    服务端
    [server]
    [mysql]
    [mysqldump]

    5.4.3mysql初始化配置常用参数(通用模板)

    [mysqld]
    user=mysql
    basedir=/application/mysql
    datadir=/data/mysql/data
    socket=/tmp/mysql.sock
    server_id=6
    port=3306
    log_error=/data/mysql/data/mysql.log
    lod_bin=/data/mysql/data/mysql-bin
    [mysql]
    socket=/tmp/mysql.sock
    

    5.5MySQL多实例

    5.5.1创建目录

    mkdir -p /data/330{7,8,9}/data
    

    5.5.2准备配置文件

    cat > /data/3307/my.cnf <<EOF
    [mysqld]
    basedir=/application/mysql
    datadir=/data/3307/data
    socket=/data/3307/mysql.sock
    log_error=/data/3307/mysql.log
    port=3307
    server_id=7
    log_bin=/data/3307/mysql-bin
    EOF
    
    cat > /data/3308/my.cnf <<EOF
    [mysqld]
    basedir=/application/mysql
    datadir=/data/3308/data
    socket=/data/3308/mysql.sock
    log_error=/data/3308/mysql.log
    port=3308
    server_id=8
    log_bin=/data/3308/mysql-bin
    EOF
    
    cat > /data/3309/my.cnf <<EOF
    [mysqld]
    basedir=/application/mysql
    datadir=/data/3309/data
    socket=/data/3309/mysql.sock
    log_error=/data/3309/mysql.log
    port=3309
    server_id=9
    log_bin=/data/3309/mysql-bin
    EOF
    

    5.5.3初始化三套数据

    mv /etc/my.cnf /etc/my.cnf.bak
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3307/data --basedir=/application/mysql
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3308/data --basedir=/application/mysql
    mysqld --initialize-insecure  --user=mysql --datadir=/data/3309/data --basedir=/application/mysql
    

    5.5.4mysql管理多实例

    cd /etc/systemd/system
    cp mysqld.service mysqld3307.service
    cp mysqld.service mysqld3308.service
    cp mysqld.service mysqld3309.service
    
    vim mysqld3307.service
    ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3307/my.cnf
    
    vim mysqld3308.service
    ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3308/my.cnf
    
    vim mysqld3309.service
    ExecStart=/application/mysql/bin/mysqld  --defaults-file=/data/3309/my.cnf
    

    5.5.5授权

    chown -R mysql.mysql /data/*
    

    5.5.6启动

    systemctl start mysqld3307.service
    systemctl start mysqld3308.service
    systemctl start mysqld3309.service
    

    5.5.7验证多实例

    netstat -lnp|grep 330
    mysql -S /data/3307/mysql.sock -e "select @@server_id"
    mysql -S /data/3308/mysql.sock -e "select @@server_id"
    mysql -S /data/3309/mysql.sock -e "select @@server_id"
    

    相关文章

      网友评论

          本文标题:day02 体系结构与管理

          本文链接:https://www.haomeiwen.com/subject/nhsmfctx.html