2-mysql 5.7 源码安装

复制代码
# 创建server目录和data目录,配置文件的etc目录放置在server目录下
mkdir -p /export/servers/mysql/etc /export/data/mysql/data

# 创建用户及用户组
groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

# 安装编译源码包所需要的依赖包,同时安装mysql所需依赖包
yum -y install m4 bison ncurses ncurses-devel openssl-devel cmake gcc-c++ gcc
yum install -y bc glibc libstdc++* libtool sysstat lrzsz zlib
yum -y install libaio

# 安装boost,mysql-5.7.37依赖的boost版本,根据编译提示为:boost_1_59_0
# 下载地址
http://www.sourceforge.net/projects/boost/files/boost

# 解压到指定目录即可,mysql进行cmake时,可通过DWITH_BOOST参数指定
mkdir -p /usr/local/boost/
tar -zxvf boost_1_59_0.tar.gz -C /usr/local/boost/


# 解压编译安装mysql
# cmake 生成 makefile,make 编译,make install 安装到 PREFIX 目录
tar -zxvf mysql-5.7.37.tar.gz
cd mysql-5.7.37

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=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DMYSQL_UNIX_ADDR=/export/data/mysql/tmp/mysql.sock -DENABLED_LOCAL_INFILE=ON -DENABLED_PROFILING=ON -DWITH_DEBUG=0 -DMYSQL_TCP_PORT=3358 -DWITH_BOOST=/usr/local/boost/

make
make install
===============================================
# -DCMAKE_INSTALL_PREFIX=/usr/local/mysql                #server安装路径
# -DMYSQL_DATADIR=/usr/local/mysql/data                  #data数据文件路径
# -DSYSCONFDIR=/etc                                      #配置文件my.cnf路径
# -DMYSQL_UNIX_ADDR=/export/data/mysql/tmp/mysqld.sock   #连接数据库socket路径
# -DMYSQL_TCP_PORT=3306                                  #端口
# -DWITH_INNOBASE_STORAGE_ENGINE=1                       #支持InnoDB引擎
# -DWITH_MYISAM_STORAGE_ENGINE=1                         #支持MyIASM引擎
# -DWITH_MEMORY_STORAGE_ENGINE=1                         #支持Memory引擎
# -DWITH_READLINE=1                                      #快捷键功能(我没用过)
# -DENABLED_LOCAL_INFILE=1                               #允许从本地导入数据
# -DWITH_PARTITION_STORAGE_ENGINE=1                      #安装支持数据库分区
# -DEXTRA_CHARSETS=all                                   #安装所有的字符集
# -DDEFAULT_CHARSET=utf8mb4                              #默认字符
# -DDEFAULT_COLLATION=utf8mb4_general_ci

# 至此,剩下的操作步骤和二进制包安装是一模一样的了


# 添加mysql配置文件my.cnf
cd /export/servers/mysql/etc
touch my.cnf

# my.cnf简单参数:
[client]
user = root
socket = /export/data/mysql/tmp/mysql.sock

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

# 初始化,免密,并指定server目录和data目录
cd /export/servers/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql/ --datadir=/export/data/mysql/data/

# 变更mysql目录权限
chown -R mysql:mysql /export/servers/mysql
chown -R mysql:mysql /export/data/mysql/

# 启动数据库并指定配置文件
/export/servers/mysql/bin/mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf 1>/dev/null 2>&1 &

登录:
/export/servers/mysql/bin/mysql


# 扩散思维:假设有N多服务器需要定制化安装,如果每台服务器都通过源码编译安装,那样会很浪费时间,我们该如何缩短安装时间呢?
# 解决思路:高级办法:制作rpm安装包。被逼无奈也可以在一台服务器进行编译安装后,在初始化前对server目录和data目录进行打包压缩成tar.gz包,再把压缩包传到其他服务器上进行解压并初始化即可

# 压缩和解压都必须带P参数,保留绝对路径
tar -zcvPf mysql-5.7.37.tar.gz /export/servers/mysql /export/data/mysql

tar -zxvPf mysql-5.7.37.tar.gz

# 初始化,免密,并指定server目录和data目录
cd /export/servers/mysql
bin/mysqld --initialize-insecure --user=mysql --basedir=/export/servers/mysql/ --datadir=/export/data/mysql/data/

# 变更mysql目录权限
chown -R mysql:mysql /export/servers/mysql
chown -R mysql:mysql /export/data/mysql/

# 启动数据库并指定配置文件
/export/servers/mysql/bin/mysqld_safe --defaults-file=/export/servers/mysql/etc/my.cnf 1>/dev/null 2>&1 &
复制代码

 

posted @   百老汇大管家  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示