本文将详细介绍如何在Linux环境下源码安装MySQL 5.7,确保每一步都清晰明了,帮助你顺利完成安装
一、准备工作 首先,你需要下载MySQL 5.7的源码包
你可以访问MySQL的官方下载页面:【MySQL官方下载页面】(https://dev.mysql.com/downloads/mysql/5.7.htmldownloads)
选择适合你系统的版本进行下载
在本教程中,我们以`mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz`为例
1.下载源码包: 你可以直接在Linux终端中使用`wget`命令下载,也可以先在Windows环境下使用工具(如迅雷)下载,然后通过FTP工具(如Xftp)上传到Linux系统中
bash wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz 2.解压源码包: 将下载的源码包解压到指定目录,通常建议放在`/usr/local`目录下
bash tar -xzvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /usr/local/ mv /usr/local/mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql-5.7 二、系统环境准备 在进行安装之前,需要确保系统环境干净,没有冲突的数据库软件
1.检查并卸载已安装的MySQL或MariaDB: 使用`rpm -qa | grepmysql`和`rpm -qa | grep mariadb`命令检查系统是否已安装MySQL或MariaDB
bash rpm -qa | grep mysql rpm -qa | grep mariadb 如果已安装,可以使用`rpm -e`命令进行卸载
如果卸载时提示有依赖关系,可以使用`--nodeps`选项强制卸载
bash rpm -e --nodeps mysql-libs-xxx rpm -e --nodeps mariadb-libs-xxx 2.创建用户和组: 检查系统中是否存在`mysql`用户和组,如果不存在,则使用`groupadd`和`useradd`命令创建
bash groupadd mysql useradd -r -g mysql mysql 3.创建数据目录: 创建MySQL的数据目录,通常放在`/data/mysql`或`/usr/local/mysql/data`
bash mkdir -p /usr/local/mysql/data 4.设置目录权限: 将MySQL的安装目录和数据目录的所有者和所属组改为`mysql`
bash chown -R mysql:mysql /usr/local/mysql-5.7 chown -R mysql:mysql /usr/local/mysql/data 三、编译安装MySQL 1.安装依赖库: 在编译MySQL之前,需要安装一些必要的依赖库,如`cmake`、`gcc`、`gcc-c++`、`bison`、`ncurses`等
bash yum -y install cmake gcc gcc-c++ bison ncurses ncurses-devel 2.下载并安装Boost库: MySQL的编译需要Boost库的支持,可以从【Boost官网】(http://www.sourceforge.net/projects/boost/files/)下载对应版本的Boost库
bash wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz tar -xzvf boost_1_59_0.tar.gz mvboost_1_59_0 /usr/local/boost 3.编译MySQL: 切换到MySQL的源码目录,使用`cmake`命令进行配置,然后使用`make`命令进行编译和安装
bash cd /usr/local/src/mysql-5.7.29 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DWITH_BOOST=/usr/local/boost -DSYSCONFDIR=/etc -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=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EMBEDDED_SERVER=1 make && make install 四、配置MySQL 1.设置权限: 将MySQL的安装目录和数据目录的所有者和所属组改为`mysql`
bash chown -R mysql:mysql /usr/local/mysql 2.创建配置文件: 在`/etc`目录下创建`my.cnf`文件,并添加必要的配置信息
bash vi /etc/my.cnf 配置文件内容示例: ini 【client】 port=3306 default-character-set=utf8 【mysql】 default-character-set=utf8 【mysqld】 port=3306 basedir=/usr/local/mysql datadir=/usr/local/mysql/data character-set-server=utf8 default-storage-engine=InnoDB max_connections=512 query_cache_size=0 tmp_table_size=18M thread_cache_size=8 myisam_max_sort_file_size=64G myisam_sort_buffer_size=35M key_buffer_size=25M read_buffer_size=64K read_rnd_buffer_size=256K sort_buffer_size=256K innodb_flush_log_at_trx_commit=1 innodb_log_buffer_size=1M innodb_buffer_pool_size=47M innodb_log_file_size=24M innodb_thread_concurrency=8 3.初始化MySQL: 使用`mysqld`命令初始化MySQL数据库
bash /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 初始化完成后,会生成一个临时密码,请务必记录下来
4.启动MySQL: 使用`support-files`目录下的`mysql.server`脚本启动MySQL服务
bash /usr/local/mysql/support-files/mysql.server start 5.修改初始密码: 使用初始密码登录MySQL,然后修改密码
bash mysql -uroot -p SET PASSWORD =PASSWORD(your_new_password); FLUSH PRIVILEGES; 6.配置远程访问: 如果需要通过远程访问MySQL,需要修改`user`表中的`host`字段
sql USE mysql; UPDATE user SET host=% WHERE user=root; FLUSH PRIVILEGES; 7.设置开机自启动: 将MySQL服务添加到系统服务中,并设置为开机自启动
bash cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chmod +x /etc/init.d/mysqld chkconfig --add mysqld chkconfig mysqld on 五、测试与验证 1.检查MySQL进程: 使用`ps`命令检查MySQL进程是否启动
bash ps -ef | grep mysql 2.使用Navicat等工具连接: 在Windows或其他系统上使用Navicat等工具连接MySQL数据库,确保连接成功
3. 查看数据库: