Linux编译安装MySQL

  • A+
所属分类:服务搭建

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

实验环境

操作系统:CentOS 7.6

MySQL:5.7.27

安装篇

第一步 安装依赖包

  1. [root@wanghualang ~]# yum -y install wget vim make cmake gcc gcc-c++ bison-devel ncurses-devel  

第二步 下载、解压源码包

  1. [root@wanghualang ~]# cd /usr/local/src/  
  2. [root@wanghualang src]# wget --no-check-certificate https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz  
  3. [root@wanghualang src]# tar xzf mysql-boost-5.7.27.tar.gz  

第三步 新建用户组、用户

  1. [root@wanghualang ~]# groupadd mysql  
  2. [root@wanghualang ~]# useradd mysql -M -g mysql -s /sbin/nologin  

第四步 编译安装MySQL

  1. [root@wanghualang ~]# /usr/local/src/mysql-5.7.27
  2. [root@wanghualang mysql-5.7.27]# cmake  \
  3. -DMYSQL_USER=mysql  \
  4. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.7.27  \
  5. -DSYSCONFDIR=/etc  \
  6. -DMYSQL_DATADIR=/usr/local/mysql-5.7.27/data  \
  7. -DWITH_BOOST=/usr/local/src/mysql-5.7.27/boost/boost_1_59_0  \
  8. -DMYSQL_UNIX_ADDR=/tmp/mysql.sock  \
  9. -DEXTRA_CHARSETS=all  \
  10. -DDEFAULT_CHARSET=utf8mb4  \
  11. -DDEFAULT_COLLATION=utf8mb4_general_ci  \
  12. -DDOWNLOAD_BOOST=1  \
  13. -DWITH_MYISAM_STORAGE_ENGINE=1  \
  14. -DWITH_INNOBASE_STORAGE_ENGINE=1  \
  15. -DWITH_MEMORY_STORAGE_ENGINE=1  \
  16. -DWITH_ARCHIVE_STORAGE_ENGINE=1  \
  17. -DWITH_FEDERATED_STORAGE_ENGINE=1  \
  18. -DWITH_BLACKHOLE_STORAGE_ENGINE=1  \
  19. -DWITH_PARTITION_STORAGE_ENGINE=1  \
  20. -DWITH_READLINE=1  \
  21. -DMYSQL_TCP_PORT=3306  \
  22. -DENABLED_LOCAL_INFILE=1  \
  23. -DENABLE_DTRACE=0
  24. [root@wanghualang mysql-5.7.27]# make
  25. [root@wanghualang mysql-5.7.27]# make install

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

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

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

  1. [root@wanghualang ~]# chown mysql:mysql /etc/my.cnf  
  2. [root@wanghualang ~]# chown -R mysql:mysql /usr/local/mysql-5.7.27  

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

  1. [root@wanghualang ~]# echo "export PATH="/usr/local/mysql-5.7.27/bin:$PATH">> /etc/profile    
  2. [root@wanghualang ~]# source /etc/profile  

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

  1. [root@wanghualang ~]# cp /usr/local/mysql-5.7.27/support-files/mysql.server /etc/init.d/mysqld  
  2. [root@wanghualang ~]# chmod +x /etc/init.d/mysqld    
  3. [root@wanghualang ~]# chkconfig --add mysqld    
  4. [root@wanghualang ~]# chkconfig mysqld on  

第九步 初始化数据库

  1. [root@wanghualang ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql-5.7.27 --datadir=/usr/local/mysql-5.7.27/data  

第十步 测试启动

  1. [root@wanghualang ~]# service mysqld start  
  2. [root@wanghualang ~]# mysql  
  • 微信赞助网站
  • weinxin
  • 支付宝赞助网站
  • weinxin
avatar

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: