zoukankan      html  css  js  c++  java
  • mysql-5.6.31安装(单实例 Linux)

    安装版本:mysql-5.6.31

    安装环境:Linux RHEL6.5.x86

    安装要求:单实例,端口为默认:3306
                  (1) 要求安装Mysql数据库版本号及包名为:mysql-5.6.31.tar.gz
                  (2) 安装目录为/usr/local/mysql
                  (3) 数据存储目录为/data/mysqldb/
                  (4) 配置文件存放为/etc/my.cnf
                  (5) 用户名为mysql
                  (6) 要求设置环境变量,服务加入开机自动启动


    环境准备

    1. 安装相关依赖包

    # yum install gcc* ncurses-devel perl cmake bison

    2. 创建用户和相关目录

    创建mysql用户组
    # groupadd mysql

    创建mysql用户(属组为mysql,为不能登录shell) # useradd mysql
    -g mysql -s /sbin/nologin

    创建mysql安装目录 #
    mkdir -p /usr/local/mysql
    创建mysql数据目录
    #
    mkdir -p /data/mysqldb

    在数据目录下创建BINLOG日志目录 #
    mkdir /data/mysqldb/binlog

    在数据目录下创建日常LOG日志目录 #
    mkdir /data/mysqldb/log

    创建mysql临时表目录 #
    mkdir /opt/mysqltmp

    3. 对相关目录进行授权

    # chown  mysql:mysql  /usr/local/mysql  -R
    # chown  mysql:mysql  /data            -R
    # chown  mysql:mysql  /opt/mysqltmp    -R

    4. 编译安装

    # cmake 
    设置mysql安装目录
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/

    设置监听套接字路径,这必须是一个绝对路径名。默认为/tmp/mysql.sock
    -DMYSQL_UNIX_ADDR=/tmp/mysql.sock

    设置配置文件放在/etc/下面

    -DSYSCONFDIR=/etc

    设置服务器的字符集(缺省情况下,MySQL使用latin1的(CP1252西欧)字符集。cmake/character_sets.cmake文件包含允许的字符集名称列表)                    
    -DDEFAULT_CHARSET=gbk  

    设置服务器的排序规则                 
    -DDEFAULT_COLLATION=gbk_chinese_ci  

    设置mysql数据库文件目录

    -DMYSQL_DATADIR=/data/mysqldb/

    设置mysql服务器监听端口,默认为3306

    -DMYSQL_TCP_PORT=3306                    

    以下存储引擎选项:

        其中yISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
        静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
        可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), PERFSCHEMA (Performance Schema)
    -DWITH_INNOBASE_STORAGE_ENGINE=1
           
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_FEDERATED_STORAGE_ENGINE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1

    # make ; make install

     注:如果要重新运行配置,需要删除解压包中的CMakeCache.txt文件

    # ls mysql-5.6.31 |grep CMakeCache.txt
    CMakeCache.txt

    初始化与配置

    1. 初始化

    开始初始化
    # /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysqldb/
    
    看到此时数据目录下产生了什么
    # ls /data/mysqldb/
    binlog  ibdata1  ib_logfile0  ib_logfile1  log  mysql  performance_schema  test
    
    复制mysql服务启动脚本并修改权限
    # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    # chmod 755 /etc/init.d/mysqld 

    修改mysql服务启动脚本(单实例安装其实可以不做这一步)
    # vim /etc/init.d/mysqld
    basedir=/usr/local/mysql
    datadir=/data/mysqldb

    2.  配置文件

    默认在/etc下生成了my.cnf
    # ls /etc/ | grep my.cnf
    my.cnf
    
    如果没有也可以拷贝挤压包或安装目录中的默认配置文件
    mysql-5.6.31/support-files/my-default.cnf
    /usr/local/mysql/support-files/my-default.cnf

     ###配置文件解析###

    # vim /etc/my.cnf
    [client]
    port = 3306               //客户端所连接的端口号
    socket = /tmp/mysql.sock  //客户端所连接的sock文件存放位置
    
    [mysqld]
    #base
    port = 3306                  //mysql的默认端口号,可以修改
    user = mysql                 //mysql用户指定
    socket = /tmp/mysql.sock     //连接所使用的端口号
    pid-file = /tmp/mysql.pid    //进程运行的主PID文件
    basedir = /usr/local/mysql   //Mysql安装目录
    datadir = /data/mysqldb      //Mysql数据目录
    tmpdir = /opt/mysqltmp       //Mysql临时表目录
    open_files_limit = 10240     //打开文件句柄的数量
    explicit_defaults_for_timestamp 
    sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    federated                    //支持sql语法和数据校验等.sql_mode三种模式 
    ANSI模式:宽松模式,对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或者截断保存,报“warning”警告
    TRADITIONAL模式:严格模式,当向mysql数据插入数据时、进行数据的严格校验,保证数据不能插入,报error错误,用于事物时,会进行事物回滚.
    STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误.
    
    server_id = 706                //主从复制唯一的服务辨识号,数值位于 1 到
    #replicate-do-db = posp        //定义唯一复制的库
    #replicate-ignore-db = mysql  //定义唯一复制的库
    #log-slave-updates = 1        //这个选项之再主从复制。从服务器上打开复制主的信息
    event_scheduler=1             //打开时间调度器
    
    max_connections = 2000      //最大并发连接数 ,增大该值需要相应增加允许打开的文件描述符数
    max_connect_errors = 10000  //如果某个用户发起的连接error超过该数值,则该用户的下次连接将被阻塞
    interactive_timeout = 600   //服务器关闭交互连接前等待活动的秒数
    wait_timeout = 600          //服务器关闭非交互连接之前等待活动的秒数
    skip-name-resolve           //garnt时,必须使用ip,不能使用主机名,禁用DNS解析
    sync_binlog = 0             //可以保证事务的安全。缺省为0
    log_bin_trust_function_creators = 1  //打开mysql可自定义函数
    
    character-set-server = utf8      //设定字符集
    default_storage_engine = InnoDB  //定义默认引擎
    
    #log
    log-bin = /data/mysqldb/binlog/mysql-bin  //指定binlog二进制日志的文件名称
    binlog_cache_size = 32m   //binlog的缓存大小
    max_binlog_cache_size = 10g //设定最大的binlog缓存
    binlog_stmt_cache_size = 32m //设定最小的binlo缓存
    table_open_cache = 2048 //表描述符缓存大小,可减少文件打开/关闭次数
    max_binlog_size = 1024m //设置binlog日志文件最大为1G
    binlog_format = mixed //binlog日志格式.
    log_output = FILE //确认输出到日志文件
    log-error = /data/mysqldb/log/mysql-error.log //mysql系统错误日志输出
    slow_query_log = 1  //打开慢日志记录
    slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log //定义慢日志输出的路径
    general_log = 0  //定义普通日志
    general_log_file = /data/mysqldb/log/mysql-general-query.log //定义普通日志输出的路径
    expire-logs-days = 30 //日志保留的时间为30天
    relay-log = /data/mysqldb/binlog/relay-bin //定义reloa_log复制的地址
    relay-log-index= /data/mysqldb/binlog/relay-bin.index //定义reloa_log索引
    
    #buffer
    sort_buffer_size = 2m      //MyISAM表发生变化时重新排序所需的缓冲。一般64M足矣
    read_buffer_size = 2m      //用来做MyISAM表全表扫描的缓冲大小.
    read_rnd_buffer_size = 2m  //当在排序之后,从一个已经排序好的序列中读取行时,行数据将从这个缓冲中读取来防止磁盘寻道
    join_buffer_size = 2m      //InnoDB用来缓存数据和
    
    net_buffer_length = 16k         //执行mysqldump时,net buffer length的最大上限是16Mb,默认值是1Mb
    max_allowed_packet = 512m       //每个连接独立的大小.大小动态增加 
    bulk_insert_buffer_size = 32m   //当突发插入被检测到时此缓冲将被分配用于myisam
    max_heap_table_size = 512m      //内存表的大小
    tmp_table_size = 512m           //内部(内存中)临时表的最大大小 
    thread_cache_size = 100         //缓存可重用的线程数,可以适当的调整
    query_cache_size = 256m         //指定MySQL查询结果缓冲区的大小。调优可以适当调整
    query_cache_limit = 10m        //缓存单条SQL的结果集上限。默认4KB。调优可以适当调整
    query_cache_min_res_unit = 4k
    key_buffer_size = 16m             //关键词缓冲的大小, 一般用来缓冲MyISAM表的索引块
    myisam_sort_buffer_size = 64m     //这在每个线程中被分配.所以在设置大值时需要小心
    myisam_max_sort_file_size = 10g  
    //MySQL重建索引时所允许的最大临时文件的大小如果文件大小比此值更大,索引会通过键值缓冲创建(更慢) myisam_repair_threads = 1        //如果一个表拥有超过一个索引, MyISAM #innodb innodb_file_per_table = 1       //可以修改InnoDB为独立表空间模式,每个数据库的每个表都会生成一个数据空间 innodb_data_file_path = ibdata1:2048M:autoextend //如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了 innodb_log_file_size = 128m     //在日志组中每个日志文件的大小, innodb_log_files_in_group = 3   //在日志组中的文件总数. 通常来说2~3是比较好的 innodb_buffer_pool_size = 1g    //innodb缓存池大小 innodb_buffer_pool_instances = -1 innodb_max_dirty_pages_pct = 70 //在InnoDB缓冲池中最大允许的脏页面的比例. 60-90都可以 #innodb_thread_concurrency = 8 innodb_flush_method = O_DIRECT innodb_log_buffer_size = 16m  //用来缓冲日志数据的缓冲区大小,当此值快满时,InnoDB必须刷新数据到磁盘上 innodb_flush_log_at_trx_commit = 2 //0代表日志只大约每秒写入日志文件并且日志文件刷新到磁盘,2代表日志写入日志文件在每次提交后,但是日志文件只有大约每秒才会刷新到磁盘上 [mysql] no-auto-rehash                //可以在命令使用tab键补齐 prompt = (u@h) [d]\_       //在mysql命令显示主机名字 default-character-set = utf8 //设定字符集合
    [client]
    port = 3306             
    socket = /tmp/mysql.sock  
    
    [mysqld]
    #base
    port = 3306                
    user = mysql                 
    socket = /tmp/mysql.sock     
    pid-file = /tmp/mysql.pid  
    basedir = /usr/local/mysql   
    datadir = /data/mysqldb      
    tmpdir = /opt/mysqltmp      
    open_files_limit = 10240     
    explicit_defaults_for_timestamp 
    sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    federated                    
    
    server_id = 706               
    #replicate-do-db = posp       
    #replicate-ignore-db = mysql 
    #log-slave-updates = 1    
    event_scheduler=1            
    
    max_connections = 2000      
    max_connect_errors = 10000  
    interactive_timeout = 600  
    wait_timeout = 600        
    skip-name-resolve          
    sync_binlog = 0            
    log_bin_trust_function_creators = 1 
    
    character-set-server = utf8  
    default_storage_engine = InnoDB  
    
    #log
    log-bin = /data/mysqldb/binlog/mysql-bin 
    binlog_cache_size = 32m  
    max_binlog_cache_size = 10g
    binlog_stmt_cache_size = 32m 
    table_open_cache = 2048 
    max_binlog_size = 1024m 
    binlog_format = mixed 
    log_output = FILE 
    log-error = /data/mysqldb/log/mysql-error.log 
    slow_query_log = 1  
    slow_query_log_file = /data/mysqldb/log/mysql-slow_query.log
    general_log = 0 
    general_log_file = /data/mysqldb/log/mysql-general-query.log 
    expire-logs-days = 30 
    relay-log = /data/mysqldb/binlog/relay-bin
    relay-log-index= /data/mysqldb/binlog/relay-bin.index
    
    #buffer
    sort_buffer_size = 2m      
    read_buffer_size = 2m    
    read_rnd_buffer_size = 2m 
    join_buffer_size = 2m      
    
    net_buffer_length = 16k         
    max_allowed_packet = 512m     
    bulk_insert_buffer_size = 32m   
    max_heap_table_size = 512m     
    tmp_table_size = 512m          
    thread_cache_size = 100        
    query_cache_size = 256m       
    query_cache_limit = 10m       
    query_cache_min_res_unit = 4k
    key_buffer_size = 16m           
    myisam_sort_buffer_size = 64m    
    myisam_max_sort_file_size = 10g  
    myisam_repair_threads = 1     
    
    #innodb
    innodb_file_per_table = 1       
    innodb_data_file_path = ibdata1:2048M:autoextend 
    innodb_log_file_size = 128m    
    innodb_log_files_in_group = 3   
    innodb_buffer_pool_size = 1g 
    innodb_buffer_pool_instances = -1
    innodb_max_dirty_pages_pct = 70
    #innodb_thread_concurrency = 8
    innodb_flush_method = O_DIRECT
    innodb_log_buffer_size = 16m  
    innodb_flush_log_at_trx_commit = 2
    
    [mysql]
    no-auto-rehash              
    prompt = (u@h) [d]\_     
    default-character-set = utf8 
    无解析版my.conf

    服务启动与环境变量设置

    1. 设置环境变量

    # vim /etc/profile
    MYSQL=/usr/local/mysql/bin
    PATH=$PATH:$MYSQL
    export PATH
    
    # source /etc/profile 

    2. 启动服务

    # /etc/init.d/mysqld start

    启动的报错与解决见博文:mysql安装启动报错

  • 相关阅读:
    Django-Auth组件
    Django-choice用法
    Django-Cookie和session组件
    Django-DRF
    Django-DRF分页器
    Django-DRF全局异常捕获,响应封装,自动生成接口文档
    Java学习路线一张图足够
    Java基础内容总结
    java基础学习之反射反射的基本概念及使用
    Java基础的方法使用详解
  • 原文地址:https://www.cnblogs.com/snsdzjlz320/p/5719294.html
Copyright © 2011-2022 走看看