千家信息网

源码编译安装MySQL 5.7.9的过程

发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,这篇文章主要介绍"源码编译安装MySQL 5.7.9的过程",在日常操作中,相信很多人在源码编译安装MySQL 5.7.9的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2025年02月01日源码编译安装MySQL 5.7.9的过程

这篇文章主要介绍"源码编译安装MySQL 5.7.9的过程",在日常操作中,相信很多人在源码编译安装MySQL 5.7.9的过程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"源码编译安装MySQL 5.7.9的过程"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

安装CentOS 6.3

配置yum:
[root@hank-yoon ~]# cd /etc/yum.repos.d/


[root@hank-yoon yum.repos.d]# mkdir a


[root@hank-yoon yum.repos.d]# ls
a CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo


[root@hank-yoon yum.repos.d]# mv CentOS-Base.repo CentOS-Debuginfo.repo CentOS-Vault.repo a


[root@hank-yoon yum.repos.d]# ls
a CentOS-Media.repo


[root@hank-yoon yum.repos.d]# vi CentOS-Media.repo
# CentOS-Media.repo
#
# This repo is used to mount the default locations for a CDROM / DVD on
# CentOS-6. You can use this repo and yum to install items directly off the
# DVD ISO that we release.
#
# To use this repo, put in your DVD and use it with the other repos too:
# yum --enablerepo=c6-media [command]
#
# or for ONLY the media repo, do this:
#
# yum --disablerepo=\* --enablerepo=c6-media [command]


[c6-media]
name=CentOS-$releasever - Media
baseurl=file:///media/CentOS/
# file:///media/cdrom/
# file:///media/cdrecorder/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6


安装依赖的包:
[root@hank-yoon yum.repos.d]# yum install -y ncurses-devel glibc gcc gcc-c++ libstdc++* libtool cmake lrzsz libaio-devel


上传源码安装包mysql-5.7.9.tar.gz和cmake-2.8.3.tar.gz:
[root@hank-yoon yum.repos.d]# cd /export/servers/


[root@hank-yoon servers]# ls
cmake-2.8.3.tar.gz mysql-5.7.9.tar.gz


[root@hank-yoon servers]# tar -xvf cmake-2.8.3.tar.gz


[root@hank-yoon servers]# tar -xvf mysql-5.7.9.tar.gz


[root@hank-yoon servers]# ls
cmake-2.8.3 cmake-2.8.3.tar.gz mysql-5.7.9 mysql-5.7.9.tar.gz


[root@hank-yoon servers]# cd cmake-2.8.3


[root@hank-yoon cmake-2.8.3]# ls
bootstrap CMakeCPack.cmake CMakeLogo.gif Copyright.txt DartConfig.cmake Example Templates
ChangeLog.manual CMakeCPackOptions.cmake.in cmake_uninstall.cmake.in CTestConfig.cmake DartLocal.conf.in Modules Tests
ChangeLog.txt CMakeGraphVizOptions.cmake CompileFlags.cmake CTestCustom.cmake.in Docs Readme.txt Utilities
cmake.1 CMakeLists.txt configure CTestCustom.ctest.in doxygen.config Source


[root@hank-yoon cmake-2.8.3]# ./configure


[root@hank-yoon cmake-2.8.3]# make && make install


[root@hank-yoon mysql]# groupadd mysql


[root@hank-yoon mysql]# useradd -r -g mysql mysql


[root@hank-yoon export]# chown -R mysql.mysql /export/


[root@hank-yoon export]# mkdir -p data/mysql/data log tmp log dumps


编译MySQL安装包报错:
CMake Error at cmake/boost.cmake:76 (MESSAGE):
You can download it with -DDOWNLOAD_BOOST=1 -DWITH_BOOST=


This CMake script will look for boost in . If it is not there,
it will download and unpack it (in that directory) for you.


If you are inside a firewall, you may need to use an http proxy:


export http_proxy=http://example.com:80


Call Stack (most recent call first):
cmake/boost.cmake:228 (COULD_NOT_FIND_BOOST)
CMakeLists.txt:435 (INCLUDE)


-- Configuring incomplete, errors occurred!


下载安装:wget https://cache.yisu.com/upload/information/20200703/141/24801 bootstrap.sh index.htm INSTALL libs more status
boost-build.jam boost.css bootstrap.bat doc index.html Jamroot LICENSE_1_0.txt rst.css tools


[root@hank-yoon mysql-5.7.9]# pwd
/export/mysql-5.7.9


[root@hank-yoon mysql-5.7.9]# cmake . -DCMAKE_INSTALL_PREFIX=/export/servers/mysql/ -DMYSQL_DATADIR=/export/data/mysql/data -DSYSCONFDIR=/export/servers/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_UNIX_ADDR=/export/data/mysql/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON -DENABLED_PROFILING=ON -DWITH_DEBUG=0 -DENABLE_DTRACE=OFF -DMYSQL_TCP_PORT=3306 -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/export/boost_1_59_0


-DCMAKE_INSTALL_PREFIX:指定MySQL程序的安装目录,默认/usr/local/mysql
-DMYSQL_DATADIR:数据文件目录
-DSYSCONFDIR:初始化参数文件目录
-DWITH_INNOBASE_STORAGE_ENGINE:指定静态编译到MySQL存储引擎
-DDEFAULT_CHARSET:默认字符集
-DMYSQL_TCP_PORT:默认端口


[root@hank-yoon mysql-5.7.9]# make && make install


[root@hank-yoon bin]# pwd
/export/servers/mysql/bin


初始化数据库:
[root@hank-yoon bin]# ./mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql --datadir=/export/data/mysql/data


删除默认的my.cnf文件:
[root@hank-yoon bin]# rm -rf /etc/my.cnf

[root@hank-yoon bin]# ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf &

新建配置文件my.cnf内容:
[root@hank-yoon etc]# cat my.cnf
[client]
port = 3358
socket = /export/data/mysql/tmp/mysql.sock


[mysqld]
port = 3358
socket = /export/data/mysql/tmp/mysql.sock
datadir = /export/data/mysql/data/


#--- GLOBAL ---#
character-set-server = utf8
lower_case_table_names = 1
log-output = FILE
log-error = /export/data/mysql/log/error.log

general_log = 0


general_log_file = /export/data/mysql/log/mysql.log
pid-file = /export/data/mysql/mysql.pid
slow-query-log
slow_query_log_file = /export/data/mysql/log/slow.log
tmpdir = /export/data/mysql/tmp
long_query_time = 1

#--------------#

#thread_concurrency = 16
thread_cache_size = 512
table_open_cache = 16384
table_definition_cache = 16384
sort_buffer_size = 2M
join_buffer_size = 2M
read_buffer_size = 4M
read_rnd_buffer_size = 4M
key_buffer_size = 8M
myisam_sort_buffer_size = 8M
tmp_table_size = 64M
max_heap_table_size = 64M
open_files_limit = 65535
query_cache_size = 0


#add z #################
innodb_undo_directory = /export/data/mysql/undo
innodb_undo_tablespaces = 4
explicit_defaults_for_timestamp = 1


#--- NETWORK ---#
back_log = 1024
max_allowed_packet = 16M
interactive_timeout = 28800
wait_timeout = 28800
skip-external-locking
max-connections = 1000
skip-name-resolve
#read_only = 1
#--- REPL ---#
server-id = 360360
log-bin = mysql-bin
binlog_format = mixed
expire_logs_days = 7
relay-log = relay-log


replicate-ignore-db = mysql.slave_master_info
replicate-ignore-db = mysql.slave_relay_log_info
replicate-ignore-db = mysql.slave_worker_info
replicate-ignore-db = test
replicate-ignore-db = information_schema
replicate-ignore-db = performance_schema


log_slave_updates
skip-slave-start
slave-parallel-workers= 4
sync_master_info = 1
sync_relay_log = 1
sync_relay_log_info = 1
relay_log_info_repository = TABLE
master_info_repository = TABLE
#rpl_semi_sync_master_enabled = 1
#rpl_semi_sync_slave_enabled = 1
#rpl_semi_sync_master_timeout = 1000


#--- INNODB ---#
default-storage-engine = INNODB
innodb_data_home_dir = /export/data/mysql/data
innodb_file_per_table
innodb_log_group_home_dir = /export/data/mysql/data
innodb_log_files_in_group = 3
innodb_log_file_size = 512M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 120
innodb_flush_method = O_DIRECT
innodb_max_dirty_pages_pct = 75


#change z #####
sync_binlog = 1
innodb_buffer_pool_size = 1G
innodb_data_file_path = ibdata1:2G;ibdata2:2G:autoextend
innodb_autoextend_increment = 500
innodb_thread_concurrency = 32
innodb_open_files = 65535
innodb_write_io_threads = 20
innodb_read_io_threads = 20
innodb_spin_wait_delay = 10
innodb_flush_neighbors = 1
innodb_use_native_aio = 1
innodb_io_capacity = 2000
innodb_io_capacity_max = 6000
relay_log_recovery = 1
#innodb_additional_mem_pool_size = 128M


#change h #####


#innodb_numa_interleave=ON
innodb_lru_scan_depth=512
innodb_checksum_algorithm=crc32
innodb_purge_threads=4


[mysqldump]
quick
max_allowed_packet = 16M


[mysql]
# auto-rehash
# Remove the next comment character if you are not familiar with SQL
# safe-updates
default-character-set=utf8


[myisamchk]
key_buffer_size = 128M
sort_buffer_size = 128M
read_buffer = 2M
write_buffer = 2M


[mysqlhotcopy]
interactive-timeout


[root@hank-yoon log]# ps -ef | grep mysql
root 26374 10192 0 16:53 pts/1 00:00:00 /bin/sh ./mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf
mysql 27460 26374 0 16:53 pts/1 00:00:04 /export/servers/mysql/bin/mysqld --defaults-file=/export/servers/mysql/etc/my.cnf --basedir=/export/servers/mysql --datadir=/export/data/mysql/data/ --plugin-dir=/export/servers/mysql/lib/plugin --user=mysql --log-error=/export/data/mysql/log/error.log --open-files-limit=65535 --pid-file=/export/data/mysql/mysql.pid --socket=/export/data/mysql/tmp/mysql.sock --port=3358


通过新配置文件重新初始化,不需要新的密码:(默认生成一个随机密码(~/.mysql_secret)
[root@hank-yoon bin]# ./mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.9-log Source distribution


Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)


添加变量位置,在任意目录下执行mysql命令:
[root@hank-yoon ~]# vi .bash_profile
PATH=$PATH:$HOME/bin:/export/servers/mysql/bin:/export/servers/mysql/bin


export PATH
export LANG=en_US.UTF-8


[root@hank-yoon ~]# source .bash_profile


[root@hank-yoon ~]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.9-log Source distribution


Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>

配置通过service启动mysql命令脚本:
[root@hank-yoon support-files]# pwd
/export/mysql-5.7.9/support-files


[root@hank-yoon support-files]# cp mysql.server /etc/init.d/mysqld

[root@hank-yoon init.d]# chmod 755 mysqld

[root@hank-yoon init.d]# service mysqld start
Starting MySQL.. SUCCESS!

[root@hank-yoon init.d]# service mysqld stop
Shutting down MySQL.. SUCCESS!

在自启动项中添加mysqld服务器:
[root@hank-yoon ~]# chkconfig --list mysqld
service mysqld supports chkconfig, but is not referenced in any runlevel (run 'chkconfig --add mysqld')

[root@hank-yoon ~]# chkconfig --add mysqld

[root@hank-yoon ~]# chkconfig --level 345 mysqld on

到此,关于"源码编译安装MySQL 5.7.9的过程"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

编译 源码 文件 过程 目录 学习 配置 命令 密码 数据 更多 帮助 实用 接下来 位置 内容 参数 变量 字符 字符集 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络安全要当心试讲稿 哪个部门提供网络技术支持 git服务器搭建windows 专升本数据库技术课堂视频 服务器分虚拟机的工具 管家婆数据库如何启动 网络安全毕业设计调研 数据库操作体验教学内容 数据库表怎么查看字段备注 民警网络安全防线 长沙物流软件开发工程师 邮件服务器安全检查 数据库中不同数据类型和实现方式 江苏c语言软件开发哪家可靠 佛山市同创网络技术有限公司 近年来国家发布的网络安全保护法 网络技术基础模块 900字网络安全征文 银行软件开发笔试面试 网络安全教育宣传图片素材 大学生网络安全找不到证书 春考网络技术技能考试真题 电脑时钟同步服务器 汽车二氧化碳排放量数据库 常用数据库优化方法有哪些 免费租用服务器 网络安全攻防宣传 手机下载软件开发商有记录吗 荣耀手机一直无法连接服务器 网络安全专题教育班会
0