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  
匿名

发表评论

匿名网友 填写信息