
在某些特定场景下,从源码编译安装MySQL能够提供更高的灵活性和定制化选项
本文将详细介绍如何在Linux环境下从源码安装MySQL5.7.21版本,确保每个步骤都详尽无遗,帮助你顺利完成安装
一、准备工作 在进行源码安装之前,确保你的系统满足以下基本要求: - Linux操作系统(本文以CentOS为例) -足够的磁盘空间和内存 - 网络连接,以便下载必要的依赖包和源码包 1. 创建用户和组 首先,为MySQL创建一个专用的用户和组,以确保数据库文件的安全性和隔离性
bash groupadd mysql useradd -r -g mysql -s /bin/false mysql 2. 安装依赖包 MySQL的编译依赖于多个开发工具和库
使用包管理器安装这些依赖项
bash yum -y install gcc gcc-c++ cmake ncurses-devel bison bison-devel 注意:不同版本的Linux发行版可能具有不同的包管理器(如apt用于Debian/Ubuntu,yum/dnf用于CentOS/RHEL等),确保使用适合你系统的包管理器
3. 下载MySQL源码包 访问MySQL官方网站(【MySQL官方下载地址】(https://dev.mysql.com/downloads/mysql/)),下载MySQL5.7.21版本的源码包
通常,你会得到一个压缩的tar包,例如`mysql-5.7.21.tar.gz`
你也可以通过wget命令直接从命令行下载: bash wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21.tar.gz 将下载的源码包上传到你的服务器,并解压到指定目录
bash tar -zxvf mysql-5.7.21.tar.gz -C /usr/local cd /usr/local mv mysql-5.7.21-linux-glibc2.12-x86_64 mysql 二、编译MySQL 1. 安装必要的库 MySQL的编译可能依赖于一些额外的库,如libaio、boost等
确保这些库已经安装在你的系统上
bash yum search libaio yum install libaio 对于boost库,你可以从MySQL源码包中自带的boost源码进行编译安装,或者从外部下载boost源码进行安装
这里假设你使用MySQL自带的boost源码
2. 预编译配置 使用cmake工具进行预编译配置
cmake会生成一个Makefile,用于后续的编译过程
bash cd /usr/local/mysql cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/run/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_BOOST=boost 如果boost源码在mysql源码目录下的boost文件夹中 注意:根据你的系统环境和需求,你可能需要调整cmake的参数
例如,如果你的boost库安装在非默认路径,你需要通过`-DWITH_BOOST`参数指定boost的安装路径
3.编译和安装 预编译配置完成后,使用make工具进行编译
编译过程可能需要一些时间,具体取决于你的系统性能
bash make -j4 -j4表示使用4个并行进程进行编译,你可以根据你的CPU核心数进行调整 make install 三、配置MySQL 1. 创建必要的目录和文件 MySQL需要一些特定的目录来存储数据文件、日志文件等
创建这些目录,并确保它们属于mysql用户和组
bash mkdir -p /usr/local/mysql/{data,log,etc,run} chown -R mysql:mysql /usr/local/mysql chmod750 /usr/local/mysql/{data,log,etc,run} 2. 配置my.cnf文件 MySQL的配置文件my.cnf通常位于`/etc/my.cnf`或`/usr/local/mysql/etc/my.cnf`
创建一个新的my.cnf文件,并根据你的需求进行配置
bash vi /usr/local/mysql/etc/my.cnf 在my.cnf文件中添加以下内容(这只是一个示例配置,你可能需要根据你的需求进行调整): ini 【client】 port =3306 socket = /usr/local/mysql/run/mysql.sock 【mysqld】 port =3306 socket = /usr/local/mysql/run/mysql.sock pid_file = /usr/local/mysql/run/mysql.pid datadir = /usr/local/mysql/data default_storage_engine = InnoDB max_allowed_packet =128M max_connections =2048 open_files_limit =65535 skip-name-resolve lower_case_table_names=1 character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci init_connect=SET NAMES utf8mb4 innodb_buffer_pool_size =128M innodb_log_file_size =128M innodb_file_per_table =1 innodb_flush_log_at_trx_commit =1 key_buffer_size =16M log-error = /usr/local/mysql/log/mysql_error.log log-bin = /usr/local/mysql/log/mysql_bin.log slow_query_log =1 slow_query_log_file = /usr/local/mysql/log/mysql_slow_query.log long_query_time =5 tmp_table_size =16M max_heap_table_size =16M query_cache_type =0 query_cache_size =0 server-id=1 3.初始化数据库 在启动MySQL服务之前,你需要初始化数据库
初始化过程会创建一个临时的root用户密码,你可以在安装日志中找到它
bash /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 在初始化日志中查找临时密码,例如: A temporary password is generated for root@localhost: A1b2C3d4e5 4. 启动MyS
MySQL与Excel表格高效关联技巧
详解MySQL5.7.21源码安装步骤与技巧
MySQL设置全IP监听,实现远程数据库访问这个标题简洁明了,直接表达了MySQL监听所有IP
揭秘MySQL注册码获取攻略
MySQL数据库主键设置新攻略:如何自定义主键起始值
MySQL如何实现自定义排序功能?或者掌握MySQL:自定义排序技巧大揭秘!
MySQL导入中文乱码?快速解决方案!
MySQL数据库主键序号设置技巧详解
MySQL数据库驱动详解:高效连接指南
Debian系统下MySQL的Binlog详解与应用
掌握MySQL数据备份之道:详解三种必备方法,保障数据安全无忧
MySQL数据库优化:详解添加索引实战例子
一步到位:详解MySQL的SQL数据如何顺畅导入Oracle数据库
MySQL数据库启停命令详解
MySQL TOMONTHS函数详解与应用
源码安装:MySQL升级全攻略
MySQL删除语句详解与应用
CSDN详解:MySQL安装步骤全攻略
MySQL DECIMAL无符号数据类型详解