zoukankan      html  css  js  c++  java
  • zabbix准备:mysql安装

    php在编译时需要mysql的配置,这样PHP远程连接mysql才有用。
    1.创建mysql用户和相关目录(配置文件里设置的目录)

    groupadd mysql
    useradd -g mysql -M -s /bin/nologin mysql
    

      

    mkdir /usr/local/mysql    #mysql安装目录
    mkdir /data/dbdata -p    #mysql数据目录
    mkdir -p /data/dbdata/binlog    #mysql二进制日志目录
    mkdir -p /data/dbdata/log         #mysql慢日志、错误日志、普通日志存放目录
    touch /data/dbdata/log/mysql-error.log   #配置文件中的错误日志路径是什么就创建什么文件
    mkdir -p /opt/mysqltmp            #mysql临时表目录
    chown mysql:mysql /usr/local/mysql -R
    chown mysql:mysql /data/dbdata -R
    chown mysql:mysql /opt/mysqltmp
    chown mysql:mysql /data/dbdata/log/mysql-error.log
    

       

    2.安装依赖包

    yum install ncurses ncurses-devel libgcc compat-gcc libtool libtool-ltdl-devel cmake bison perl gcc gcc-c++ -y

    有些安装过的包可以忽略

    3.mysql源码包获取和编译安装

    官网www.mysql.com     community-->source code-->Generic Linux

    cd /download
    tar xf mysql-5.6.37.tar.gz 
    cd mysql-5.6.37
    cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/data/dbdata -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1-DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_EXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_SSL=yes
    #注:重新运行配置,需要删除CMakeCache.txt文件
    make && make install
    

      

    ##################编译参数解释: ############################################# 

    #一般选项:
    -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
         #指定基本安装目录,这个参数可以在服务启动时候用--basedir参数指定 
    -DMYSQL_DATADIR=/data/dbdata
         #指定mysql data文件存放目录
    #存储引擎:
    -DWITH_INNOBASE_STORAGE_ENGINE=1
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1
    -DWITH_ARCHIVE_STORAGE_ENGINE=1
    -DWITH_PARTITION_STORAGE_ENGINE=1
    -DWITH_PERFSCHEMA_STORAGE_ENGINE=1
    -DWITH_MYISAM_STORAGE_ENGINE=1
    #存储引擎选项:
    MyISAM,MERGE,MEMORY,和CSV引擎是默认编译到服务器中,并不需要明确地安装。
    静态编译一个存储引擎到服务器,使用-DWITH_engine_STORAGE_ENGINE= 1
    可用的存储引擎值有:ARCHIVE, BLACKHOLE, EXAMPLE, FEDERATED, INNOBASE (InnoDB), PARTITION (partitioning support), 和PERFSCHEMA (Performance Schema)
    
    
    #功能选项:
    -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock
            #指定sock文件存放位置,默认位置是/tmp/mysql.sock
    -DMYSQL_TCP_PORT=3306        
            #监听端口
    -DENABLED_LOCAL_INFILE=1        
            #Whether to enable LOCAL capability in the client library fo r LOAD DATA INFILE.
    -DWITH_EXTRA_CHARSETS=all
    -DDEFAULT_CHARSET=utf8
    -DDEFAULT_COLLATION=utf8_general_ci
    -DWITH_SSL=yes
            #ssl支持
    -DENABLE_DOWNLOADS=1
    #是否要下载可选的文件。例如,启用此选项(设置为1),cmake将下载谷歌所使用的测试套件运行单元测试
    编译参数解释

    #####################################################################################

    4.初始化

    /usr/local/mysql/scprit/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/dbdata

    5.服务启动脚本

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld

    多个mysql实例不可能共用同一个安装目录和数据存放目录,每个mysql实例都应有自己对应的目录,多实例需要修改mysql服务启动脚本中的目录位置,,如果不是多实例这一步可免

    vim /etc/init.d/mysqld
    basedir=/usr/local/mysql
    datadir=/data/mysqldb

    6.配置文件 

    在MySQL5.5数据库中,可以没有配置文件,在这种情况下,MySQL会安装编译时的默认参数设置启动实例用以下命令查看,当MYSQL数据库实例启动时,它会在哪些位置查找配置文件

    /usr/local/mysql/bin/mysql --help | grep my.cn
        order of preference, my.cnf, $MYSQL_TCP_PORT,
    /etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf

    MySQL里面有启动参数、系统参数,启动参数通过show variables无法查询到,可以在mysqld的选项中查到,例如关于二进制日志有Startup Options Used with Binary Logging、System Variables Used with Binary Logging两种参数

    配置文件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  //设定字符集合
    my.cnf

    touch /data/dbdata/mysql-error.log

    chown mysql:mysql /data/dbdata/mysql-error.log

    7.启动服务和设置环境变量

    #:vim /etc/profile
    文件末尾加上以下语句:
    
    MYSQL=/usr/local/mysql/bin
    PATH=$PATH:$MYSQL
    export PATH
    
    #:source /etc/profile //使配置生效  

     启动服务:

    /etc/init.d/mysqld start

    进入数据库:

    mysql -uroot
    若没有设置第七步的环境变量,进入数据库命令为:
    /usr/local/mysql/bin/mysql -uroot
    

      

    #######################

    遇到的错误
    首先看日志文件
    删除/data/dbdata下的三个文件
    ============
    注意:
    log_slave_updates
    主从复制的时候。在主(master)服务器上关闭此选项,在从(slave)上面开启此选项  

      

     

      

  • 相关阅读:
    DL/T 467-2019 电站磨煤机及制粉系统性能试验
    fidlder-05(拦截并修改数据)
    fiddler-04(怎么对APP抓包)
    Redis5设计与源码分析读后感(二)简单动态字符串SDS
    Jedis连接搭建在阿里云服务器上的Redis,基于Linux(CentOS7)
    centos7下安装redis6.0版本+3种启动方式
    Linux下端口被占用的解决方法
    Linux卸载Nginx
    linux中普通用户修改密码出现(passwd:Authentication token manipulation error)
    linux重置密码提示与用户名相似该怎么解决?
  • 原文地址:https://www.cnblogs.com/xiami-xm/p/7279860.html
Copyright © 2011-2022 走看看