官网下载mysql源代码安装包步骤(旧档案-版本下载方式)-CSDN博客
安装之前由于是最小化安装centos7安装一些开发环境和工具包
文章使用国内阿里源
cd /etc/yum.repos.d/
curl -O https://mirrors.aliyun.com/repo/epel-7.repo
curl -O https://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y groupinstall "development tools" "base"
删除默认的mariadb-libs(centos7)
在centos7默认安装了mariadb-libs5.5*
与mariadb-libs有依赖关系的是postfix是用来做邮件服务器的。
rpm -e mariadb-libs --nodeps
安装编译mysql依赖软件
安装cmake-3.30.2
cd /usr/local/src/
wget https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2.tar.gz
cd cmake-3.30.2
为避免出现以下情况安装cmake所需依赖包openssl-devel
yum -y install openssl-devel
./bootstrap && gmake && gmake install
安装ncurses-6.5
cd /usr/local/src/
wget https://invisible-island.net/archives/ncurses/ncurses-6.5.tar.gz
tar xf ncurses-6.5.tar.gz
./configure && make && make install
安装bison-3.8.2
cd /usr/local/src/
wget https://ftp.gnu.org/gnu/bison/bison-3.8.2.tar.xz
tar xf bison-3.8.2.tar.xz
./configure && make && make install
安装boost-1.59.0
cd /usr/local/src/
wget https://jaist.dl.sourceforge.net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
tar xf boost_1_59_0.tar.gz
mv boost_1_59_0 /usr/local/boost
源代码安装mysql5.7.44
创建mysql用户
useradd mysql -l
-l:选项会自动创建一个同名的组并添加用户在组里。
安装依赖软件包
yum -y install ncurses-devel
cd /usr/local/src/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.44.tar.gz
tar xf mysql-5.7.44.tar.gz
cd mysql-5.7.44/
cmake \
-DSYSCONFDIR=/etc \
-DWITH_BOOST=/usr/local/boost \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DEXTRA_CHARSETS=all \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DENABLED_THREAD_SAFETY=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_SYSTEMD=1 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DWITH_ZLIB=system \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_BIG_TABLES=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_PLUGIN_DIR=plugin \
-DINSTALL_DOCDIR=/usr/local/mysql/doc \
-DINSTALL_INCLUDEDIR=/usr/local/mysql/include \
-DINSTALL_MANDIR=/usr/local/mysql/share/man \
-DINSTALL_PLUGINDIR=/usr/local/mysql/lib/plugin \
-DINSTALL_SBINDIR=/usr/local/mysql/bin \
-DINSTALL_SCRIPTDIR=/usr/local/mysql/bin \
-DINSTALL_SUPPORT_FILES_DIR=/usr/local/mysql/share/mysql \
-DINSTALL_LIBEXECDIR=/usr/local/mysql/libexec \
-DINSTALL_LIBDIR=/usr/local/mysql/lib \
-DCMAKE_C_FLAGS='-O2 -m64' \
-DCMAKE_CXX_FLAGS='-O2 -m64'
make && make install
配置文件
vim /etc/my.cnf
[mysqld]
# 数据目录
datadir=/usr/local/mysql/data
# socket 文件位置
socket=/tmp/mysql.sock
# 监听端口
port=3306
# InnoDB 缓冲池大小
innodb_buffer_pool_size=2G
# 最大连接数
max_connections=151
# 打开表缓存的数量
table_open_cache=200
# 二进制日志文件位置
log_bin=/var/log/mysql/mysql-bin.log
# 服务器 ID
server-id=1
# 二进制日志格式
binlog_format=ROW
# 二进制日志过期天数
expire_logs_days=10
# 慢查询日志文件位置
slow_query_log_file=/var/log/mysql/slow_queries.log
# 错误日志文件位置
log-error=/var/log/mysql/error.log
# 服务器默认字符集
character-set-server=utf8mb4
# 服务器默认校对规则
collation-server=utf8mb4_unicode_ci
# 禁止 DNS 反向解析
skip-name-resolve
[client]
# socket 文件位置
socket=/tmp/mysql.sock
# 默认字符集
default-character-set=utf8mb4
[mysql]
# 禁用自动重哈希
no-auto-rehash
[mysqldump]
# 快速备份模式
quick
# 最大数据包大小
max_allowed_packet=16M
[mysql_upgrade]
# 服务器的默认字符集
character_set_server=utf8mb4
# 服务器的默认校对规则
collation_server=utf8mb4_unicode_ci
添加永久环境变量
sed -i.bak '$aexport PATH=$PATH:/usr/local/mysql/bin' /etc/profile
source /etc/profile
初始化数据库仓库
mkdir -p /usr/local/mysql/data
mkdir -p /var/log/mysql/
chown -R mysql:mysql /var/log/mysql/
chown -R mysql:mysql /usr/local/mysql/
可以使用 mysqld --verbose --help|grep initialize 命令查看如何初始化mysql数据仓库
mysqld --defaults-file=/etc/my.cnf --initalize --user=mysql --root-host=%
标签:log,tar,--,local,mysql5.7,usr,mysql,源代码,安装 From: https://blog.csdn.net/2301_77161927/article/details/141464791初始化数据库常见参数:
基础配置:
--initialize
: 初始化数据库目录。--initialize-insecure
: 初始化数据库目录但不设置 root 密码(不推荐)。数据目录和日志文件配置:
--datadir=/path/to/datadir
: 指定数据文件所在的目录。--innodb_data_home_dir=/path/to/innodb
: 指定 InnoDB 数据文件所在的目录。--log-error=/path/to/error.log
: 指定错误日志文件的位置。安全性配置:
--root-host=%
: 允许 root 用户从任何主机连接。--secure-auth
: 禁用旧的密码加密方式。性能配置:
--innodb-buffer-pool-size=size
: 设置 InnoDB 缓冲池的大小。--innodb-log-file-size=size
: 设置单个 InnoDB 日志文件的大小。日志配置:
--log-bin=/path/to/mysql-bin.log
: 启用并指定二进制日志文件的位置。--log-slave-updates
: 在主从复制时记录 slave 更新事件。网络配置:
--port=port
: 设置 MySQL 服务监听的端口号。--socket=/path/to/mysql.sock
: 设置 Unix Socket 文件的位置。其他配置:
--skip-networking
: 不启动网络监听(仅允许本地连接)。--user=mysql
: 指定运行 MySQL 服务的用户。