千家信息网

Mysql系列二:Centos7.4安装mysql5.7.2

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文为博客Mysql系列二:Centos7.4安装mysql5.7.28源码mysql安装方法有多种,以Centos7为例,可以官网下载编译好的二进制代码进行安装,可以官网下载rpm包进行yum in
千家信息网最后更新 2026年11月01日Mysql系列二:Centos7.4安装mysql5.7.2

本文为博客Mysql系列二:Centos7.4安装mysql5.7.28源码

mysql安装方法有多种,以Centos7为例,可以官网下载编译好的二进制代码进行安装,可以官网下载rpm包进行yum install rpm包进行安装,本文我们介绍官网下载源码自行编译安装。

根据本人Mysql系列一博客内容下载的源码,我们开始安装mysql源码,安装方法希望大家多从官网的document上阅读,吸取精髓,安装方法和顺序并不唯一,如下内容可供参考。

基础环境:

yum install -y ntp wget curl lrzsz vim sysstat iftop pcre pcre-devel openssl openssl-devel

编译安装环境:

yum -y install wget gcc gcc-c++ cmake openssl-devel ncurses-devel zlib-devel

官网下载解压:

mysql-5.7.28.tar.gz和mysql-boost-5.7.28.tar.gzcd /data/app_install/package tar zxvf mysql-5.7.28.tar.gz mkdir mysql-boosttar zxvf mysql-boost-5.7.28.tar.gz -C mysql-boost

创建mysql用户:

groupadd mysql useradd  -g mysql -s /sbin/nologin -d /data/app_install/mysql_3306 mysql

创建mysql相关目录:

mkdir -p /data/logs/mysql_3306                            日志目录mkdir -p /data/app_install/mysql_3306                 安装目录mkdir -p /data/app_install/mysql_3306/conf         my.cnf配置文件目录mkdir -p /data/app_install/mysql_3306/tmp          mysql.sock目录mkdir -p /data/data/data_mysql                            数据库文件目录

编译配置:

cmake . -DCMAKE_INSTALL_PREFIX=/data/app_install/mysql_3306 -DMYSQL_DATADIR=/data/data/data_mysql -DWITH_BOOST=/data/app_install/package/mysql-boost/mysql-5.7.28/boost/boost_1_59_0 -DSYSCONFDIR=/data/app_install/mysql_3306/conf -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 -DENABLE_DTRACE=0 -DDEFAULT_CHARSET=utf8mb4 -DDEFAULT_COLLATION=utf8mb4_general_ci -DWITH_EMBEDDED_SERVER=1

编译:

make

安装:

make install

配置文件:

cd /data/app_install/mysql_3306/confvim my.cnf[client]port = 3306socket = /data/app_install/mysql_3306/tmp/mysql.sock[mysqld]port = 3306socket =  /data/app_install/mysql_3306/tmp/mysql.sockbasedir = /data/app_install/mysql_3306datadir = /data/data/data_mysqlpid-file = /data/app_install/mysql_3306/mysql.piduser = mysqlbind-address = 0.0.0.0server-id = 1init-connect = 'SET NAMES utf8mb4'character-set-server = utf8mb4back_log = 300max_connect_errors = 6000open_files_limit = 65535table_open_cache = 128max_allowed_packet = 4Mbinlog_cache_size = 1Mmax_heap_table_size = 8Mtmp_table_size = 16Mread_rnd_buffer_size = 8Mjoin_buffer_size = 8Mkey_buffer_size = 4Mthread_cache_size = 8query_cache_type = 1query_cache_size = 8Mquery_cache_limit = 2Mft_min_word_len = 4log_bin = mysql-binbinlog_format = mixedexpire_logs_days = 30log_error = /data/logs/mysql_3306/mysqld-error.logslow_query_log = 1long_query_time = 1slow_query_log_file = /data/logs/mysql_3306/mysql-slow.logperformance_schema = 0explicit_defaults_for_timestampskip-external-lockingdefault_storage_engine = InnoDBinnodb_file_per_table = 1innodb_open_files = 500innodb_buffer_pool_size = 2048Minnodb_write_io_threads = 4innodb_read_io_threads = 4innodb_thread_concurrency = 0innodb_purge_threads = 1innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 2Minnodb_log_file_size = 32Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120default-time-zone = '+08:00'interactive_timeout = 28800wait_timeout = 86400sql-mode= NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION[mysqld_safe]log-error = /data/logs/mysql_3306/mysqld_safe-error.logpid-file = /data/app_install/mysql_3306/mysql.pid

启动文件:

cp /data/app_install/mysql_3306/support-files/mysql.server /etc/init.d/mysqld

权限:

chown -R mysql:mysql /data/app_install/mysql_3306/chown -R mysql:mysql /data/data/data_mysql/chown -R mysql:mysql /data/logs/mysql_3306/

环境变量:

mkdir /data/envcd /data/envvim mysql.envexport PATH=$PATH:/data/app_install/mysql_3306/binvim /etc/profilesource /data/env/mysql.env

初始化数据库:
-initialize 表示默认生成一个随机安全的密码,-initialize-insecure 表示不生成密码,不想要在日志中查找并使用随机密码可以以如下方式初始化,之后在安全初始化引导中设置密码

mysqld --defaults-file=/data/app_install/mysql_3306/conf/my.cnf --user=mysql --initialize-insecure

启动mysql:

/etc/init.d/mysqld start

启动时遇到日志路径不存在或权限问题,重新创建并赋mysql:mysql权限即可,同时遇到一个Starting MySQL. ERROR! The server quit without updating PID file (/data/app_install/mysql_3306/mysql.pid).也是权限问题,所有涉及的目录文件除启动文件之外均需要mysql:mysql权限
尝试登陆:

不需要密码即可登录

安全初始化引导:
使用此功能时,mysql进程需要在线,使用mysql_secure_installation命令进行安全初始化引导

设置完后使用新密码即可重新登陆。
设置程序自启动:

chkconfig --add mysqldchkconfig mysqld onservice mysqld startservice mysqld stopservice mysqld restart

实际上Centos7已经可以用systemd 对服务进行管理和自启动的支持,mysql也可以,比如使用使用源码版本进行安装需要添加编译项-DWITH_SYSTEMD=1,同时配置/etc/systemd/system/mysqld.service.d目录下面一个自命名文件,然后再根据实际情况描述以下内容:

[Service]LimitNOFILE=*`max_open_files`*PIDFile=*`/path/to/pid/file`*Nice=*`nice_level`*LimitCore=*`core_file_limit`*Environment="LD_PRELOAD=*`/path/to/malloc/library`*"Environment="TZ=*`time_zone_setting`*"

再systemctl daemon-reload

可知官网下载源码安装支持chkconfig+service和systemd+systemctl进行服务配置和管理,都需要手动一步步实践,对了解整个原理和过程大有帮助。

如果官网下载的编译好的二进制进行安装则可以使用chkconfig+service和systemd+systemctl两种办法进行服务配置和管理,如果是官网下载的rpm包进行yum安装,是直接可以systemd+systemctl进行服务配置和管理。

之后可以将安装过程和编译好的文件打包成自动化安装脚本,一键安装mysql数据库,省的每次都要从头开始手动配置编译。

我们将在下节讲述mysql一些简单实用,实战当中经常用到的一些操作命令。

编译 文件 目录 配置 源码 密码 权限 安全 服务 管理 内容 数据 数据库 方法 日志 服务配置 环境 二进制 博客 同时 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 互联网科技公司经营范围 上海互联网科技有限公司 科技与互联网发展 奇酷互联网科技公司 互联网科技美容 互联网科技宣传片 科技类的互联网平台 无锡溥仪互联网科技有限公司 互联网巨头投资的硬核科技 互联网科技中介 中国互联网十大科技股排名 深圳市罗太互联网科技有限公司 启辰互联网科技 中天科技中国工业互联网 互联网科技数字货币 陕西九四连强互联网科技有限公司 上海万顺科技互联网有限公司招聘 平安好医生打造互联网科技医疗 高科技和互联网的现代国家 高科技与互联网 互联网科技集团 迪茉互联网科技 太原新华互联网科技学校怎么样 阿里巴巴算科技企业还是互联网 全球顶尖互联网科技公司 保险科技服务互联网营销体系 深圳互联网科技的发展 世界互联网科技成果奖 长沙易易互联网科技有限公司
0