zoukankan      html  css  js  c++  java
  • MySQL -2- 体系结构--随笔小记

    简介与安装
    NoSQL
    RDBMS
    版本
    安装方式
    二进制安装,源码安装
    体系结构
    CS模型
    TCP/IP
    socket
    mysql master thread
    实例
    mysqld 的程序构成
    连接层 协议、验证、链接线程
    SQL层 语法语义、权限、解析、优化、执行、日志记录
    存储引擎层:存取磁盘数据

    逻辑结构:库、表、属性、字符集和校对规则
    表:表明、字段、记录、元数据
    物理存储结构
    库:就是一个目录
    表:myisam、frm、myd、myi
    innodb :frm ibd
    innodb 存储引擎表
    段 区 页


    MySQL基础管理
    用户权限

    create user oldboy@'10.0.0.%' identified by '123';
    drop user oldboy@'10.0.0.%' ';
    alter user oldboy@'10.0.0.%' identified by '123
    select user,host from mysql.user;
    
    grant all on *.* to root@'10.0.0.%';
    revoke drop,delete,insert,update from root@'10.0.0.%';
    show grants for root@'10.0.0.%';

    参数--root忘记密码时使用socket方式登录修改

    --skip-grant-tables 
    --skip-networking
    
    mysql -uroot -p -S /tmp/mysql.sock        --socket链接方式
    mysql -uroot -p -h192.168.16.174 -P3306   --tcp/IP链接方式
    -P必须与-h 同时使用
    -e 参数:免交互方式使用数据库,如:
    mysql -uroot -p123 -e"select user,host fom mysql.user;"

    < 导入脚本数据

    mysql -uroot -p <word.sql;

    启动方式
    service mysqld start --> ./mysql.server start -->mysqld_safe
    ./bin/mysqld_safe & --> mysqld_safe --> mysqld
    systemd :systemctl start mysqld

    mysql --skip-grant-tables --skip-networking

    初始化配置:预编译、配置文件、命令行

    作用:控制MySQL的启动、
    配置文件:/etc/my.conf
    命令行:仅限于mysqld_safe 和mysqld,临时维护使用

    初始化配置文件:
    初始化配置文件顺序,有重复的以最后一个为准
    mysqld --help --verbose|grep my.cnf
    但指定的除外:
    --default-file=/etc/my.cnf

    my.cnf

    [mysqld]
    user=mysql
    basedir=/u02/app/mysql
    datadir=/u02/data/mysql
    server_id=6
    port=3306
    socket=/tmp/mysql.sock
    
    [mysql]
    socket=/tmp/mysql.sock
    prompt=3306[\d]>
    
    #[mysqld_safe]
    #log-error=/var/log/mysqld.log
    #pid-file=/var/run/mysqld/mysqld.pid

    标签类型:客户端、服务端
    服务端标签:

    【mysqld】
    【mysql_safe】
    【server】

    客户端标签:

    【mysql】
    【mysqldump】
    【client】

    服务端例子:

    【mysqld】
    user=mysql
    basedir=/u02/app/mysql
    datadir=/u02/data/mysql
    socket=/tmp/mysql.sock 
    server_id=6 ----5.7版本必须字段,范围1-65535
    port=3306
    log_err=/u02/mysql/data/mysql/mysql..log

    说明:socket=/tmp/mysql.sock可以任意指定如:socket=/etc/mysql.sockaaa

    重启数据库后,再次登录时需要指定

    mysql -uroot -p -S socket=/etc/mysql.sockaaa
    
    service mysqld stop
    mysql -uroot -p
    Enter password: 
    ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
    报错原因:数据库没起,或者指定socket文件错误
    netstat -lnp|grep 3306
    system start mysqld

    客户端例子:

    【mysql】
    socket=/tmp/mysql.sock
    prompt=3306[\d]>
    #user=root
    #passwd=123
    
    说明:prompt=3306[\d]> 用于显示登录后的路径
    如此时显示 3306[(none)]>
    修改prompt=[\d]>
    此时显示 [(none)]>
    修改 prompt=mysql>
    此时显示 mysql>

    多实例应用
    1、准备多个目录

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

    2、生成配置文件

    cat >/u02/data/3307/my.cnf<<zfd
    [mysqld]
    basedir=/u02/app/mysql
    datadir=/u02/data/3307/data
    socket=/u02/data/3307/mysql.sock
    port=3307
    log_err=/u02/data/3307/mysql.log
    serve_id=7
    log_bin=/u02/data/3307/mysql-bin
    zfd
    
    cat >/u02/data/3308/my.cnf<<zfd
    [mysqld]
    basedir=/u02/app/mysql
    datadir=/u02/data/3308/data
    socket=/u02/data/3308/mysql.sock
    port=3308
    log_err=/u02/data/3308/mysql.log
    serve_id=8
    log_bin=/u02/data/3308/mysql-bin
    zfd
    
    cat >/u02/data/3309/my.cnf<<zfd
    [mysqld]
    basedir=/u02/app/mysql
    datadir=/u02/data/3309/data
    socket=/u02/data/3309/mysql.sock
    port=3309
    log_err=/u02/data/3309/mysql.log
    serve_id=9
    log_bin=/u02/data/3309/mysql-bin
    zfd
    

      

    3、初始化三套数据

    mv /etc/my.cnf /etc/my.cnf.bak
    mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3307/data --basedir=/u02/app/mysql --pid-file=/u02/data/3307/data/zhangfd.pid
    mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3308/data --basedir=/u02/app/mysql
    mysqld --initialize-insecure --user=mysql --datadir=/u02/data/3309/data --basedir=/u02/app/mysql

    4、system管理多实例

    cd /etc/systemd/system
    cp mysqld.service mysqld3307.service
    cp mysqld.service mysqld3308.service
    cp mysqld.service mysqld3309.service
    修改各个service :ExecStart=/u02/app/mysql/bin/mysqld --defaults-file=/u02/data/3307/my.cnf

    使用service sshd start 方式启停服务的设置待解决,因为系统不能使用systemctl命令来管理服务*******

    5、授权

    chown -R mysql.mysql /u02/data/*
    

      

    6、启动

    systemctl start mysql3307.service
    systemctl start mysql3308.service
    systemctl start mysql3309.service
    netstat -lnp|grep 330
    

      

  • 相关阅读:
    Windows server 2016 解决“无法完成域加入,原因是试图加入的域的SID与本计算机的SID相同。”
    Windows Server 2016 辅助域控制器搭建
    Windows Server 2016 主域控制器搭建
    Net Framework 4.7.2 覆盖 Net Framework 4.5 解决办法
    SQL SERVER 2012更改默认的端口号为1772
    Windows下彻底卸载删除SQL Serever2012
    在Windows Server2016中安装SQL Server2016
    SQL Server 创建索引
    C#控制台或应用程序中两个多个Main()方法的设置
    Icon cache rebuilding with Delphi(Delphi 清除Windows 图标缓存源代码)
  • 原文地址:https://www.cnblogs.com/moox/p/11240116.html
Copyright © 2011-2022 走看看