美文网首页
mysql 5.6 二进制包部署

mysql 5.6 二进制包部署

作者: 偷油考拉 | 来源:发表于2023-08-31 14:41 被阅读0次

    目前官网仅存在 5.7 和 8.0 两个版本的在线文档,5.6 的PDF文档。
    https://dev.mysql.com/doc/refman/5.7/en/
    https://dev.mysql.com/doc/refman/8.0/en/
    https://downloads.mysql.com/docs/refman-5.6-en.pdf

    一、软件包准备

    历史版本下载地址 https://downloads.mysql.com/archives/community/

    wget https://cdn.mysql.com/archives/mysql-5.6/mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
    tar xzvf mysql-5.6.51-linux-glibc2.12-x86_64.tar.gz
    
    Directory Contents of Directory
    bin, scripts mysqld server, client and utility programs
    data Log files, databases
    docs MySQL manual in Info format
    include Include (header) files
    lib Libraries
    mysql-test Test suite
    man Unix manual pages
    share Error messages, dictionary, and SQL for database installation
    sql-bench Benchmarks
    support-files Miscellaneous support files, including sample configuration files

    安装依赖

    yum install libaio
    

    二、简单运行

    1. 创建运行用户
    groupadd mysql
    useradd -r -g mysql -s /bin/false mysql
    
    1. 可选解压路径
    cd /usr/local
    tar zxvf /path/to/mysql-VERSION-OS.tar.gz
    ln -s full-path-to-mysql-VERSION-OS mysql
    
    1. 创建表
    # 执行脚本需要安装依赖
    yum install perl-Data-Dumper.x86_64
    # This scripts creates the MySQL Server system tables
    cd mysql
    scripts/mysql_install_db --user=mysql
    

    mysql_install_db 在安装目录创建默认配置文件 my.cnf ,该文件源自安装包的 my-default.cnf 模板。
    mysql_install_db 安装数据文件到 /var/lib/mysql/

    如果使用自定义配置文件,在创建表的时候,请增加 --defaults-file 配置

    1. 启动 mysql
    bin/mysqld_safe --user=mysql &
    

    --defaults-file argument to mysqld_safe when starting the server

    You can test the MySQL daemon with mysql-test-run.pl,执行

       cd mysql-test ; perl mysql-test-run.pl
    
    1. 配置文件(可选)
    # Next command is optional
    cp support-files/mysql.server /etc/init.d/mysql.server
    

    三、设置 root 用户密码

    设置MySQL root用户的密码

      ./bin/mysqladmin -u root password 'new-password'
      ./bin/mysqladmin -u root -h localhost.localdomain password 'new-password'
    

    生产环境建议

      ./bin/mysql_secure_installation
    

    四、启动 - 高级配置

    1. 参考PDF文档 4.3.2 mysqld_safe — MySQL Server Startup Script
    # cd mysql_installation_directory
    bin/mysqld_safe &
    bin/mysqld_safe --user=mysql &
    bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf
    

    默认配置下,需要手动创建 --log-error--pid-file 文件,并修改用户权限为 mysql。
    非默认配置,自行配置。

    执行 bin/mysqld_safe 启动 mysql 服务 , 进程显示如下

    /root/mysql-5.6.51-linux-glibc2.12-x86_64/bin/mysqld \
    --basedir=/root/mysql-5.6.51-linux-glibc2.12-x86_64 \
    --datadir=/var/lib/mysql \
    --plugin-dir=/root/mysql-5.6.51-linux-glibc2.12-x86_64/lib/plugin \
    --user=mysql \
    --log-error=/var/log/mariadb/mariadb.log \
    --pid-file=/var/run/mariadb/mariadb.pid \
    --socket=/var/lib/mysql/mysql.sock
    

    如上默认配置都可以在 my.cnf 内进行修改

    1. 参考PDF文档 4.3.3 mysql.server — MySQL Server Startup Script
      support-files/mysql.server(MySQL daemon start/stop script)拷贝到对应位置
    mysql.server start
    mysql.server stop
    
    cp mysql.server /etc/init.d/mysql
    chmod +x /etc/init.d/mysql
    chkconfig --add mysql
    chkconfig --level 345 mysql on
    

    五、配置文件说明

    参考 http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    参考 4.2.2.2 Using Option Files
    参考 MariaDB option-file-syntax
    https://cloud.tencent.com/developer/article/1533528

    范例

    [mysqld]
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    local-infile=1
    query_cache_limit=4M
    query_cache_size=256M
    query_cache_type=1
    max_connections=400
    interactive_timeout=30
    wait_timeout=30
    connect_timeout=10
    thread_cache_size=128
    key_buffer=200M
    join_buffer=1M
    max_allowed_packet=16M
    table_cache=26536
    sort_buffer_size=1M
    read_buffer_size=1M
    read_rnd_buffer_size=1M
    max_connect_errors=10
    myisam_sort_buffer_size=64M
    tmp_table_size=256M
    max_heap_table_size=256M
    innodb_buffer_pool_size=2000M
    innodb_flush_log_at_trx_commit=2
    innodb_file_per_table
    
    [mysqldump]
    quick
    quote-names
    max_allowed_packet = 16M
    
    [mysql.server]
    user=mysql
    
    [mysqld_safe]
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

    Option file Sections:
    配置文件常见 Section - mysqld, mysql

    Section Description Other
    [mysqld] 服务器参数 [server options]
    [mysqld_safe] define server settings like MySQL user, pid file and error log MySQL和MariaDB都接受
    [mysql.server] define server settings like MySQL user, pid file and error log 逐渐过时
    [mysqldump] 备份参数 [mysqldump options]
    [mysql] 命令行参数 [mysql and client options]
    [client] 客户端参数,包含 mysql cli [mysql and client options]
    [mysqladmin] mysqladmin
    [mysqlhotcopy] mysqlhotcopy

    mysqld
    mysqld是关于服务器端的程序,要想使用客户端程序,该程序必须运行,因为客户端通过连接服务器来访问数据库。
    mysql_safe
    mysql服务启动脚本,它是mysqld的父进程,它调用mysqld启动数据库服务,并在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。
    使用mysqld_safe命令可以防止mysql服务的意外终止。
    mysql.server
    服务器启动的shell脚本,主要作用就是为了方便启动和关闭mysql服务,它使用mysql_safe来启动mysql服务器。

    常用配置文件
    [mysqld]
    datadir = /mysql_data/data
    user = mysql 
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    
    [mysqld_safe]
    log-error = /mysql_data/mysql.log
    pid-file = /mysql_data/mysql.pid
    

    自定义配置,需要执行 scripts/mysql_install_db --defaults-file=my.cnf 安装表文件到指定data路径。

    # For advice on how to change settings please see
    # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html
    
    [mysqld]
    
    # Remove leading # and set to the amount of RAM for the most important data
    # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
    # innodb_buffer_pool_size = 128M
    
    # Remove leading # to turn on a very important data integrity option: logging
    # changes to the binary log between backups.
    # log_bin
    
    # These are commonly set, remove the # and set as required.
    # basedir = .....
    # datadir = .....
    # port = .....
    # server_id = .....
    # socket = .....
    
    # Remove leading # to set options mainly useful for reporting servers.
    # The server defaults are faster for transactions and fast SELECTs.
    # Adjust sizes as needed, experiment to find the optimal values.
    # join_buffer_size = 128M
    # sort_buffer_size = 2M
    # read_rnd_buffer_size = 2M 
    
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
    

    相关文章

      网友评论

          本文标题:mysql 5.6 二进制包部署

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