美文网首页
MySQL标准化安装

MySQL标准化安装

作者: 古飞_数据 | 来源:发表于2023-09-17 09:22 被阅读0次

    /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &

    1.互联网大厂MySQL的安装标准化是什么样的?
    2.为什么生产中不用MySQL的启动?
    3.利用strace分析MySQL相关配置加载,为什么推荐使用defaults-file
    4.为什么要使用多实例,MySQL 单机多实例安装有什么注意事项

    5.6.26

    1.互联网大厂MySQL的安装标准化是什么样的?

    业界规范

    基础软件
    /opt/mysql/mysql-x-x
    软连到:ln -s /opt/mysql/mysql-x /usrlocal/mysql
    软件运行用户:mysql:mysql  
    数据库目录规划
    /data/mysql/mysql+port/{data,logs,tmp}
    配置文件/data/mysql/mysql+port/myport.cnf
    /usr/local/mysq/bin/mysqld -defaults-file=/path/myport.cnf &
    
    unlink /usr/local/mysql
    ln -s /opt/mysql/mysql-xxx /usrlocal/mysql
    
    /sbin/nologin
    
    mkdir -p /data/mysql/mysql3306/{data,logs,tmp}
    /data/mysql/mysql3306/{data,logs,tmp,my3306.cnf}
    
    
    
    1.创建帐号:groupadd mysql & useradd -g mysql -s /sbin/nologin -d /usr/local/mysql -MN mysql
    2下载mysql解压相关位置  /opt/mysql/
    3.加入path : echo "export PATH=$PATH:/usr/local/mysql/bin">>/etc/profile & source /etc/profile
    4.创建基本目录: cd /data/mysql & mkdir mysql3306/(data,logs,tmp} & chown -R mysql:mysql /data/mysql/mysql3306
    5.调整配置文件
    6.初始化:/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf --initialize
    7.启动:/usr/ocal/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3306/my3306.cnf &
    
    cat error.log|grep passwd
    sed -i 's/3306/3308/g' my3008.cnf
    mysql -S /tmp/mysql3306.sock -p
    alter user user() identified by '123';
    mysqladmin -S /tmp/mysql3306.sock -p123 shutdown
    mysql>shutdown;
    

    2.为什么生产中不用MySQL的启动?

    ·如果机器挂了,建议数据库也停下来。
    ·如果使用了自动启动,又不是太熟悉环境,一定要使用read_only功能 super_read_only,read_only
    ·如果数据库退出了,也要把问题暴露出来。
    ·例如表损坏,访问到坏表,进程退出
    ·服务自起不建议用到数据库上

    数据库安全加固

    提示:低于5.7的版本加固处理:
    mysql>delete from mysql.user where user !='root' or host !='localhost' 
    mysql>truncate mysql.db;
    mysql>drop database test;
    
    select user,host,password from mysql.user where user='';
    
    

    /usr/local/mysql/bin/mysqld &
    会使用那个配置文件?

    docker ps
    docker ps -a
    docker start dzst150
    docker inspect dzst150  找ip
    ssh 172.16.0.150
    
    mysqld --verbose
    [mysql]
    auto-rehash
    prompt="\\u@\\h [\\d]>"
    
    mysql --help | grep my.cnf
    
    strace mysql -S /tmp/mysql3306.sock -p 2>&1 | tee start.log
    strace mysql --defaults-file=/data/mysql/mysql3306/my3306.cnf -S /tmp/mysql3306.sock -p 2>&1 | tree 11.log
    

    3.利用strace分析MySQL相关配置加载

    strace是Linux环境下的一款程序调试工具,用来监察一个应用程序所使用的系统调用。
    Strace是一个简单的跟踪系统调用执行的工具。在其最简单的形式中,它可以从开始到结束跟踪二进制的执行,并在进程的生命周期中输出一行具有系统调用名称,每个系统调用的参数和返回值的文本行。
    阅读:
    strace /usr/local/mysql/bin/mysqld
    参考:mysqld --verbose --help |grep my.cnf
    
    

    为什么推荐使用defaults-file启动MySQL

    mysqld -verbose --help
    --print-defaults         Print the program argument list and exit.
    --no-defaults            Don't read default options from any option file,except for login file.
    --defaults-file=#      Only read default options from the given file #.
    --defaults-extra-file=#     Read this file after the global files are read.
    
    /usr/local/mysql/bin/mysqld --print-defaults
    
    
    

    为什么使用单机多实例

    ·单机资源有剩余
    ·单实例连接数太多
    ·更多是靠主库抗业务,从库太闲
    ·业务高峰不一样,混跑充分利用机器的资源
    ·超卖,超卖,超卖,不超卖,云都活不下去
    
    

    多立例安装注意事项

    配置参数:
    datadir =/data/mysql/mysql3306/data
    server_id =103306
    port =3306
    socket =/tmp/mysql3306.sock
    log_bin =/data/mysql/mysql3306/logs/mysql-bin

    系统资源
    1、注意内存分配不要超过总内存的80%
    2、单个用户可以启动的进程限制ulimit -a确认

    多实例
    cd /data/mysql/
    mkdir mysql3312/{data,logs,tmp} -p
    cp mysql3306/my3306.cnf mysql3312/my3312.cnf
    cd mysql3312/
    sed -i 's/3306/3312/g' my3312.cnf
    grep "3312" my3312.cnf

    shown -R mysql.mysql ../mysql3312

    /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3312/my3312.cnf --initialize
    /usr/local/mysql/bin/mysqld --defaults-file=/data/mysql/mysql3312/my3312.cnf &
    cat data/error.log | grep pass
    alter user user() identified by '123';
    set global read_only=0;
    set global super_read_only=0;

    总结自动安装MySQL

    相关文章

      网友评论

          本文标题:MySQL标准化安装

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