zoukankan      html  css  js  c++  java
  • MySQL5.7 基于二进制包的安装

    1.MySQL5.7安装注意事项

    1.在MySQL5.7中mysql_install_db已经不再推荐使用,建议改成mysqld-initialize 完成实力初始化。(mysql_install_db在/mysql/bin目录下,同时取消了/mysql/scripts目录)

    2.在初始化是如果加上--initial-insecure,则会创建空密码的root@localhost 账号,否则会创建带密码的root@localhost账号,密码直接写在log-error日志文件中

    3.MySQL5.7的安装过程与5.6的主要区别在于数据初始化过程。

    5.7.12二进制安装包下载地址:

    链接:https://pan.baidu.com/s/1PAeHOyRRSMzRqCUIasE0xQ

    密码:12r6

    2.MySQL5.7安装

    2.1 安装相关依赖包

    大部分情况下生产环境在系统初始化的过程中已经安装大部分依赖包,防止偶然时间。

    yum -y groupinstall "Development tools"
    yum -y install ncurses-devel openssl-devel bison gcc gcc-c++ make

    2.2 解压MySQL二进制tar包

    cd到mysql二进制的目录,然后使用tar命令解压

    tar xf mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz

    2.3 复制相关目录

    复制解压后的mysql到mysqlbase目录

     cp -rf mysql-5.7.12-linux-glibc2.5-x86_64 /usr/local/mysql

    2.4 创建MySQL用户

    在linux中添加mysql用户

    useradd mysql

    2.5 创建MySQL数据目录

    创建数据目录

    mkdir -p /home/mysql3306/mysql3306

    创建日志目录

    mkdir -p /home/mysql3306/logs

    2.6 修改目录权限

    修改数据目录、日志目录、base目录权限

    chown -R mysql.mysql -R /home/mysql3306
    chown -R mysql.mysql -R /usr/local/mysql/

    2.7 创建配置文件

    删掉系统自带my.cnf,创建自定义配置文件

    mv /etc/my.cnf /etc/my.cnf.bak
    vim /etc/my3306.cnf

    my.cnf配置模板

    #mysql5.7.9
    
    [client] 
    port                            = 3306
    socket                          = /tmp/mysql3306.sock 
    default_character_set           = utf8mb4 
     
    [mysqld] 
    # *** generic configuration options *** #
    lower_case_table_names      = 1
    port                            = 3306
    basedir                         = /usr/local/mysql
    datadir                         = /home/mysql3306/mysql3306
    socket                          = /tmp/mysql3306.sock
    pid_file                        = /home/mysql3306/mysql5711.pid
    tmpdir                          = /tmp/
    slave_load_tmpdir               = /tmp/
    
    # *** dns resolve *** #
    skip_name_resolve               = 1
    external_locking
    explicit_defaults_for_timestamp    = true
    
    character_set_client_handshake     = FALSE
    character_set_server            = utf8mb4
    collation_server                = utf8mb4_unicode_ci
    
    # *** connection *** #
    max_connections                 = 512
    max_connect_errors              = 100000
    back_log                        = 102
    interactive_timeout             = 600
    wait_timeout                    = 600
    
    table_definition_cache          = 5000
    table_open_cache                = 2048
    #query_cache_size                = 64M
    #query_cache_limit               = 2M
    thread_cache_size               = 51
    ft_min_word_len                    = 4
    #performance_schema              = OFF
    
    ##If large data transfer problems,enlarge max_allowed_packet
    
    thread_stack = 192K
    
    # *** global memory parameter *** #
    max_allowed_packet              = 16M
    tmp_table_size                  = 256M
    max_tmp_tables                  = 128
    max_heap_table_size             = 96M
    #close query cache
    #query_cache_type                = 0
    
    
    # *** session memory parameter *** #
    sort_buffer_size                = 4M
    read_buffer_size                = 4M #顺序IO
    join_buffer_size                = 4M
    read_rnd_buffer_size            = 8M #随机IO
    bulk_insert_buffer_size         = 64M #
    
    # *** engine *** # 
    default_storage_engine          = InnoDB 
    #ignore_builtin_innodb
    #plugin_load=innodb=ha_innodb_plugin.so;innodb_trx=ha_innodb_plugin.so;innodb_locks=ha_innodb_plugin.so;innodb_lock_waits=ha_innodb_plugin.so;innodb_cmp=ha_innodb_plugin.so;innodb_cmp_reset=ha_innodb_plugin.so;innodb_cmpmem=ha_innodb_plugin.so;innodb_cmpmem_reset=ha_innodb_plugin.so
    
    # *** log *** #
    log_timestamps                  = system
    log_bin                         = /home/mysql3306/logs/mysql-bin
    expire_logs_days                = 10
    binlog_format                   = mixed
    #binlog_gtid_simple_recovery     = 1
    #binlog_do_db
    #binlog_ignore_db
    log_slave_updates        =1
    relay_log                       = /home/mysql3306/logs/mysql5711_relay_bin
    relay_log_index                    = /home/mysql3306/logs/mysql5711_relay_bin.index
    relay_log_info_file             = /home/mysql3306/logs/mysql5711_relay_bin.info
    relay_log_recovery              = 0
    log_error                       = /home/mysql3306/logs/mysql5711.err
    slow_query_log                  = 1 
    slow_query_log_file             = /home/mysql3306/logs/mysql5711_slow.log
    long_query_time                 = 1 
    log_output                      = FILE
    log_queries_not_using_indexes   = 1
    log_slow_admin_statements       = 1
    log_slow_slave_statements       = 1
    log_throttle_queries_not_using_indexes = 10
    min_examined_row_limit          = 100
    #general_log                     = off
    general_log_file                = /home/mysql3306/logs/mysql5711_general.log
    #log_queries_not_using_indexes  = /mysqllog/mysql5711/mysql5711_not_useing_index.log
    
    max_binlog_cache_size           = 8M
    max_binlog_size                 = 1024M
    binlog_cache_size               = 4M
    sync_binlog                     = 1
    
    server_id                       = 15133306
    #read_only                       = 0
    #slave_skip_errors               = all
    
    
    
    # *** MyISAM Specific options *** #
    #key_buffer_size                 = 128M
    #bulk_insert_buffer_size         = 64M
    #myisam_sort_buffer_size         = 128M 
    #myisam_max_sort_file_size       = 10G
    #myisam_repair_threads           = 1
    #myisam_recover_options          = BACKUP,FORCE
    
    # *** INNODB Specific options *** #
    innodb_data_home_dir            = /home/mysql3306/mysql3306/
    innodb_data_file_path           = ibdata1:1024M:autoextend 
    innodb_log_group_home_dir       = /home/mysql3306/mysql3306/
    innodb_buffer_pool_instances    = 1
    innodb_buffer_pool_size         = 1024MB
    innodb_buffer_pool_dump_pct     = 40
    innodb_page_cleaners            = 4
    innodb_log_file_size            = 256M 
    innodb_log_files_in_group       = 2
    innodb_log_buffer_size          = 32M  #default 16M 
    innodb_flush_log_at_trx_commit  = 1 
    innodb_lock_wait_timeout        = 30 
    innodb_undo_directory           = /home/mysql3306/mysql3306/
    innodb_undo_logs                = 128  #must >=35.default 128
    innodb_undo_tablespaces         = 3    #must >=2
    innodb_undo_log_truncate        = 1
    innodb_max_undo_log_size        = 256M
    innodb_purge_rseg_truncate_frequency = 128
    innodb_print_all_deadlocks      = 1    
    innodb_sort_buffer_size         = 64M
    #disabled_storage_engines    =MyISAM
    innodb_buffer_pool_load_at_startup = 1
    innodb_buffer_pool_dump_at_shutdown = 1
    innodb_file_format_max        =Antelope
    innodb_file_format        =Antelope
    sql_mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
    innodb_open_files               = 4000
    innodb_file_per_table           = 1
    innodb_status_file              = 1
    innodb_lock_wait_timeout        = 30
    innodb_read_io_threads          = 8
    innodb_write_io_threads         = 8
    innodb_io_capacity              = 200
    innodb_thread_concurrency       = 32
    innodb_commit_concurrency       = 0
    #innodb_flush_neighbors          = 0  #for ssd
    #innodb_flush_neighbors          = 1  #for other
    innodb_purge_batch_size         = 1000
    innodb_flush_log_at_trx_commit  = 0
    innodb_flush_method             = O_DIRECT
    innodb_purge_threads            = 4
    #innodb_file_format              = barracuda
    innodb_strict_mode              = 1
    innodb_support_xa               = 1
    skip_innodb_adaptive_hash_index 
    innodb_force_recovery           =0
    #innodb_fast_shutdown
    innodb_change_buffering            = all
    #innodb_use_native_aio          = 1
    innodb_max_dirty_pages_pct      = 75
    
    ##replication
    #replicate_do_db
    #replicate_ignore_db             = mysql
    #replicate_ignore_db             = test
    #replicate_do_table
    #replicate_ignore_table
    #replicate_wild_do_table
    #replicate_wild_ignore_table
    #gtid_mode                       = on
    #enforce_gtid_consistency        = true
    master_info_repository          = TABLE
    relay_log_info_repository       = TABLE
    sync_master_info                = 1
    slave_parallel_workers          = 2
    binlog_checksum                 = CRC32 #default crc32 
    master_verify_checksum          = 1     #default off
    slave_sql_verify_checksum       = 1
    #binlog_rows_query_log_events    = 1    #
    
    ##semi sync replication settings
    #plugin_dir=/usr/local/mysql57/lib/plugin
    #plugin_load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
    #loose_rpl_semi_sync_master_enabled = 1
    #loose_rpl_semi_sync_slave_enabled  = 1
    #loose_rpl_semi_sync_master_timeout = 10000 # 10 second
    
    ##transaction
    transaction_isolation          = REPEATABLE-READ 
    #transaction_write_set_extraction= MURMUR32 #open --single-tra no use
    
    [mysqldump] 
    quick 
    max_allowed_packet              = 16M 
     
    [mysql] 
    no_auto_rehash 
    default_character_set           = utf8mb4
     
    [myisamchk] 
    #key_buffer_size                 = 20M 
    #sort_buffer_size                = 4M 
    #read_buffer                     = 4M 
    #write_buffer                    = 2M 
     
    [mysqlhotcopy] 
    interactive_timeout 
    
    
    [mysqld_safe]
    open_files_limit                = 8192

    2.8 初始化MySQL

    MySQL5.7的初始化过程

     /usr/local/mysql/bin/mysqld --defaults-file=/etc/my3306.cnf  --initialize-insecure --explicit_defaults_for_timestamp --basedir=/usr/local/mysql --datadir=/home/mysql3306/mysql3306/ --user=mysql

    2.9 启动MySQL

     /usr/local/mysql/bin/mysqld_safe  --defaults-file=/etc/my3306.cnf --datadir=/home/mysql3306/mysql3306/ --user=mysql &

    查看进程和监听端口 ps -ef|grep mysql netstat -nltp|grep 3306

    2.10 进入MySQL

    启动后密码为空

    /usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock

    2.11 安装完成后,简单初始化权限

    因为安装完成后,没有详细的权限设置,所以我们需要手动的配置一下简单的权限

     delete from mysql.user where user!='root' or host!='localhost';
    update mysql.user set authentication_string=password('root') where user='root';
    *需要注意的是,在未来版本,MySQL将废弃此种授权方式
    *MySQL5.7 mysql.user表没有password字段改 authentication_string;
    grant all privileges on *.* to 'sys_admin'@'%' identified by '123456';
    flush privileges;

    *未来版本的授权方式
    CREATE USER sysadmin@localhost IDENTIFIED BY '123456';
    grant all privileges on *.* to sysadmin@localhost;

    2.12 添加环境变量

    echo 'export PATH=$PATH:/usr/local/mysql/bin/' >>/etc/profile
    source /etc/profile

     本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 

  • 相关阅读:
    如何让AlertDialog 在点击确定或者取消时不消失
    你的睡眠时间和睡眠质量达标了么?
    如何使用指定浏览器打开网页
    国内主流Android安卓应用市场简介
    位运算——pku2436患病的奶牛
    高精度——sgu112
    树插入,树遍历——hdu3999
    大浮点数相加——hdu1753
    小数的幂——pku1001
    递推型DP——USACO 2009 February Silver bull and cow
  • 原文地址:https://www.cnblogs.com/wangchaolinux/p/9404453.html
Copyright © 2011-2022 走看看