CentOS7编译安装MySQL

    MySQL是一款关系数据库管理系统,原开发者为瑞典MySQL AB公司,目前已属于Oracle公司产品之一。MySQL因性能高、成本低、可靠性好,已经成为最流行的开源数据库,广受个人建站爱好者青睐。

    实验环境

    操作系统:CentOS 7.9

    MySQL:5.7.32

    服务端篇

    第一步 安装依赖包

    1. # yum -y install wget vim make cmake gcc gcc-c++ openssl-devel bison-devel ncurses-devel  

    第二步 下载、解压源码包

    1. # cd /usr/local/src/  
    2. # wget --no-check-certificate https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.32.tar.gz  
    3. # tar xzf mysql-boost-5.7.32.tar.gz  

    第三步 新建用户组、用户

    1. # groupadd mysql  
    2. # useradd mysql -M -g mysql -s /sbin/nologin  

    第四步 编译安装MySQL(按需添加更多功能模块)

    1. # cd /usr/local/src/mysql-5.7.32
    2. # cmake  \
    3. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
    4. -DSYSCONFDIR=/etc  \
    5. -DMYSQL_TCP_PORT=3306  \
    6. -DEXTRA_CHARSETS=all  \
    7. -DDEFAULT_CHARSET=utf8mb4  \
    8. -DDEFAULT_COLLATION=utf8mb4_general_ci  \
    9. -DWITH_MYISAM_STORAGE_ENGINE=1  \
    10. -DWITH_INNOBASE_STORAGE_ENGINE=1  \
    11. -DWITH_PARTITION_STORAGE_ENGINE=1  \
    12. -DWITH_FEDERATED_STORAGE_ENGINE=1  \
    13. -DWITH_EMBEDDED_SERVER=1  \
    14. -DENABLED_LOCAL_INFILE=1  \
    15. -DWITH_BOOST=/usr/local/src/mysql-5.7.32/boost/boost_1_59_0
    16. # make  
    17. # make install  

    第五步 优化数据库配置(4G-8G内存优化方案,仅供参考)

    1. # vim /etc/my.cnf  
    2.   
    3. [client]  
    4. #password="123456"  
    5. port=3306  
    6. socket=/tmp/mysql.sock  
    7.   
    8. [mysqld]  
    9. #bind_address=127.0.0.1  
    10. binlog_cache_size=128K  
    11. thread_stack=256K  
    12. join_buffer_size=2048K  
    13. query_cache_type=1  
    14. max_heap_table_size=512M  
    15. port=3306  
    16. socket=/tmp/mysql.sock  
    17. datadir=/usr/local/mysql/data  
    18. default_storage_engine=InnoDB  
    19. performance_schema_max_table_instances=400  
    20. table_definition_cache=400  
    21. skip-external-locking  
    22. key_buffer_size=384M  
    23. max_allowed_packet=100G  
    24. table_open_cache=384  
    25. sort_buffer_size=1024K  
    26. net_buffer_length=4K  
    27. read_buffer_size=1024K  
    28. read_rnd_buffer_size=768K  
    29. myisam_sort_buffer_size=16M  
    30. thread_cache_size=128  
    31. query_cache_size=192M  
    32. tmp_table_size=512M  
    33. sql-mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES  
    34.   
    35. explicit_defaults_for_timestamp=true  
    36. #skip-name-resolve  
    37. max_connections=300  
    38. max_connect_errors=100  
    39. open_files_limit=65535  
    40.   
    41. log-bin=mysql-bin  
    42. binlog_format=mixed  
    43. server-id=1  
    44. expire_logs_days=10  
    45. slow_query_log=1  
    46. slow-query-log-file=/usr/local/mysql/data/mysql-slow.log  
    47. long_query_time=3  
    48. #log_queries_not_using_indexes=on  
    49. early-plugin-load=""  
    50.   
    51. innodb_data_home_dir=/usr/local/mysql/data  
    52. innodb_data_file_path=ibdata1:10M:autoextend  
    53. innodb_log_group_home_dir=/usr/local/mysql/data  
    54. innodb_buffer_pool_size=512M  
    55. innodb_log_file_size=128M  
    56. innodb_log_buffer_size=32M  
    57. innodb_flush_log_at_trx_commit=1  
    58. innodb_lock_wait_timeout=50  
    59. innodb_max_dirty_pages_pct=90  
    60. innodb_read_io_threads=4  
    61. innodb_write_io_threads=4  
    62.   
    63. [mysqldump]  
    64. user=root  
    65. #password="123456"  
    66. quick  
    67. max_allowed_packet=500M  
    68.   
    69. [mysql]  
    70. no-auto-rehash  
    71.   
    72. [myisamchk]  
    73. key_buffer_size=64M  
    74. sort_buffer_size=1M  
    75. read_buffer=2M  
    76. write_buffer=2M  
    77.   
    78. [mysqlhotcopy]  
    79. interactive-timeout  

    第六步 修改数据库目录、配置文件权限

    1. # chown mysql:mysql /etc/my.cnf  
    2. # chown -R mysql:mysql /usr/local/mysql  

    第七步 配置数据库环境变量

    1. # echo "export PATH="/usr/local/mysql/bin:$PATH">> /etc/profile    
    2. # source /etc/profile  

    第八步 配置启动服务脚本、开机启动

    1. # cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld  
    2. # chmod +x /etc/init.d/mysqld    
    3. # chkconfig --add mysqld    
    4. # chkconfig mysqld on  

    第九步 初始化数据库

    1. # mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data  

    第十步 启动程序

    1. # service mysqld start  
    2. # mysql  
    匿名

    发表评论

    匿名网友 填写信息