博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL5.7.20编译安装
阅读量:4566 次
发布时间:2019-06-08

本文共 7047 字,大约阅读时间需要 23 分钟。

1:官网下载source code源码安装文件
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.20.tar.gz

  

2:安装准备

先看一下文件和路径:

[root@16-31 mysql]# pwd/home/mysql[root@16-31 mysql]# lsmysql-boost-5.7.20.tar.gz

  

我们看一下官网给出的源码安装需要的条件:

CMake, which is used as the build framework on all platforms. CMake can be downloaded from http://www.cmake.org.A good make program. Although some platforms come with their own make implementations, it is highly recommended that you use GNU make 3.75 or higher. It may already be available on your system as gmake. GNU make is available from http://www.gnu.org/software/make/.A working ANSI C++ compiler. See the description of the FORCE_UNSUPPORTED_COMPILER. option for some guidelines.The Boost C++ libraries are required to build MySQL (but not to use it). Boost 1.59.0 must be installed. To obtain Boost and its installation instructions, visit the official site. After Boost is installed, tell the build system where the Boost files are located by defining the WITH_BOOST option when you invoke CMake. For example:shell> cmake . -DWITH_BOOST=/usr/local/boost_1_59_0Adjust the path as necessary to match your installation.The ncurses library.Sufficient free memory. If you encounter problems such as “internal compiler error” when compiling large source files, it may be that you have too little memory. If compiling on a virtual machine, try increasing the memory allocation.Perl is needed if you intend to run test scripts. Most Unix-like systems include Perl. On Windows, you can use a version such as ActiveState Perl.

  

上面是官网给的例子,我们先需要下载一个Boost C++ 1.59.0(这是一组扩充C++功能的经过同行评审(Peer-reviewed)且开放源代码程序库。大多数的函数为了能够以开放源代码、封闭项目的方式运作,而授权于Boost软件许可协议(Boost Software License)之下。),下载地址:

https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz/download

  

接下来我们开始进行一些准备工作(安装依赖包,用户以及目录):

yum -y install gcc gcc-c++ ncurses ncurses-devel bison libgcrypt perl make cmakegroupadd mysqluseradd -r -g mysql -s /bin/false -M mysqlmkdir -p /home/mysql/{data,log,tmp}ls /home/mysql/chown -R mysql:mysql /home/mysql/

  

3:安装

解压两个压缩文件,MySQL和Boost,然后开始进行编译安装:

[root@16-31 mysql-5.7.20]# cmake . -DCMAKE_INSTALL_PREFIX=/home/mysql -DMYSQL_DATADIR=/home/mysql/data -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_TCP_PORT=3306 -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DENABLE_DOWNLOADS=1 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/usr/local/boost

  

然后进行make

make

  

这个过程时间会比较久,我这边大概两个小时的样子,然后安装:

make install

  

然后我们先把安装目录添加到环境变量中:

[root@mdw mysql]# echo "export PATH=$PATH:/home/mysql/bin">>/etc/profile[root@mdw mysql]# source /etc/profile

  

以上步骤完成以后就是初始化数据库了:

[root@mdw datafile]# mysqld --defaults-file=/etc/my.cnf  --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp

  

OK,现在我们初始化也完成了,接下来我们配置一下我们的my.cnf文件

[client]port            = 3306socket          = /home/datafile/mysql3306/temp/mysql.sock[mysqld]# Skip #skip_name_resolve              = 1  skip-external-locking          = 1 symbolic-links= 0                    # GENERAL #user = mysqldefault_storage_engine = InnoDBcharacter-set-server = utf8socket  = /home/datafile/mysql3306/temp/mysql.sockpid_file =/home/datafile/mysql3306/temp/mysqld.pidbasedir = /home/mysqlport = 3306bind-address = 0.0.0.0 log-warnings = 2  explicit_defaults_for_timestamp = off #sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#read_only=onsql_mode=NO_ENGINE_SUBSTITUTION  # MyISAM #key_buffer_size                = 32M    #size of the buffer used for index blocks##myisam_recover                 = FORCE,BACKUP# SAFETY #max_allowed_packet             = 16M max_connect_errors             = 1000000 sysdate_is_now                 = 1#innodb	= FORCE#innodb_strict_mode = 1# Replice # server-id = 313306  relay_log = mysqld-relay-bin gtid_mode = on enforce-gtid-consistency log-slave-updates = on  master_info_repository =TABLE  relay_log_info_repository =TABLE # rpl_semi_sync_master_enabled=1# rpl_semi_sync_master_timeout=200     # 0.2 second# DATA STORAGE # datadir = /home/datafile/mysql3306/data/ tmpdir	= /home/datafile/mysql3306/temp/ # BINARY LOGGING # log_bin =/home/datafile/mysql3306/log/mysql-bin max_binlog_size = 1000M binlog_format = row expire_logs_days = 7# sync_binlog = 1 # CACHES AND LIMITS # tmp_table_size                 = 32M max_heap_table_size            = 32M query_cache_type               = 0 query_cache_size               = 0 max_connections                = 4000 thread_cache_size              = 2048 open_files_limit               = 65535 table_definition_cache         = 4096 table_open_cache               = 4096 sort_buffer_size               = 20M read_buffer_size               = 2M read_rnd_buffer_size           = 2M #thread_concurrency             = 24 join_buffer_size = 1M# table_cache = 32768 thread_stack = 512k max_length_for_sort_data = 16k # INNODB # innodb_flush_method            = O_DIRECT  innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2  innodb_file_per_table          = 1  innodb_buffer_pool_size        = 2G innodb_buffer_pool_instances = 8 innodb_stats_on_metadata = off  innodb_open_files = 8192 innodb_read_io_threads = 8  innodb_write_io_threads = 16 innodb_io_capacity = 20000 innodb_thread_concurrency = 0  innodb_lock_wait_timeout = 60 innodb_old_blocks_time=1000 innodb_use_native_aio = 1 innodb_purge_threads=1   innodb_change_buffering=all innodb_log_file_size = 128M  innodb_log_files_in_group = 3 innodb_data_file_path  = ibdata1:1024M:autoextend  # LOGGING # log_error                      = /home/datafile/mysql3306/log/mysql-error.log # log_queries_not_using_indexes  = 1 # slow_query_log                 = 1 slow_query_log_file            = /home/datafile/mysql3306/log/slowlog_36215.log # TimeOut # interactive_timeout = 30  wait_timeout        = 30[mysqldump]quick   max_allowed_packet = 16M[mysql]no-auto-rehash  [myisamchk]key_buffer_size = 256Msort_buffer_size = 256Mread_buffer = 2Mwrite_buffer = 2M[mysqlhotcopy]interactive-timeout

  

这里要说明下,就是参数要根据自己的机器配置,不能直接照抄使用,然后直接启动mysql:

mysqld_safe --defaults-file=/etc/my.cnf &

  

我们从日志中找到初始密码:

2017-12-11T06:59:05.094646Z 1 [Note] A temporary password is generated for root@localhost: ,fsQ:tkik6un

 

登录修改密码就好了。 最后,我们将我们的编译包打包,以后可以直接拷贝使用。

4:解压使用编译压缩包

先拷贝:

scp   /home/mysql.tar  sa@172.16.16.34:/home/sa/

 

解压:

[root@sdw1 home]# mv mysql.tar /home/[root@sdw1 home]# tar zxvf mysql.tar

 

然后我们创建MySQL相关的用户和目录以及授权等:

groupadd mysqluseradd -r -g mysql -s /bin/false -M mysqlmkdir -p /home/datafile/mysql3306/{data,log,temp}ls /home/datafile/mysql3306chown -R mysql:mysql /home/datafile/mysql3306echo "export PATH=$PATH:/home/mysql/bin">>/etc/profilesource /etc/profile

  

然后使用刚才配置文件再初始化一下(要修改个别参数):

[root@sdw1 mysql3306]# mysqld --defaults-file=/etc/my.cnf  --initialize --user='mysql' --log_error_verbosity --explicit_defaults_for_timestamp[root@sdw1 mysql3306]# mysqld_safe --defaults-file=/etc/my.cnf &

 

然后找到密码初始化搞定。

转载于:https://www.cnblogs.com/shengdimaya/p/8027507.html

你可能感兴趣的文章
.NET对象序列化:TimeSpan
查看>>
android学习之handler
查看>>
《HTTP 权威指南》笔记:第十二章 基本认证体制
查看>>
sizeof() strlen()
查看>>
蓝桥杯-地宫取宝
查看>>
WorldWind源码剖析系列:星球表面渲染类WorldSurfaceRenderer
查看>>
利用MATLAB软件对数码相机进行检校
查看>>
python3之运算符
查看>>
创建控制器的方法、控制器加载view过程、控制器view的生命周期、多控制器组合...
查看>>
Angualr6访问API
查看>>
使用SQLAlchemy对博客文章进行分页
查看>>
spell checking
查看>>
Java设计模式视频讲解
查看>>
面试 9:Java 玩转冒泡排序
查看>>
线程初步了解 - <第一篇>
查看>>
NET(C#):使用HttpWebRequest头中的Range下载文件片段
查看>>
scrollTop()--返回或设置匹配元素的滚动条的垂直位置
查看>>
JavaScript学习 - 基础(八) - DOM 节点 添加/删除/修改/属性值操作
查看>>
解决SharePoint2010文档库中新建文档不是保存到文档库而是保存到本地电脑的问题...
查看>>
hadoop3.0新特性及新功能
查看>>