然而,在某些情况下,我们可能需要卸载系统中原有的MySQL版本,并通过编译安装的方式获取最新的或特定版本的MySQL
本文将详细介绍在CentOS7环境下如何卸载原有MySQL,并通过编译安装的方式获取新的MySQL版本
一、卸载原有MySQL 在卸载原有MySQL之前,我们需要确保MySQL服务已经停止,以避免卸载过程中的数据丢失或服务冲突
以下是卸载MySQL的详细步骤: 1.检查MySQL服务状态 首先,我们需要检查MySQL服务的状态
可以使用以下命令: bash systemctl status mysqld 如果MySQL服务正在运行,我们需要先停止它: bash systemctl stop mysqld 2.卸载MySQL软件包 接下来,我们使用`yum`命令卸载MySQL软件包
由于MySQL可能包含多个相关的软件包,我们需要逐一卸载它们
可以使用以下命令列出所有已安装的MySQL软件包: bash rpm -qa | grep -i mysql 或者 bash yum list installed | grep mysql 然后,使用`yum remove`命令卸载这些软件包: bash yum remove mysql-server mysql-client mysql-libs mysql-devel 注意:这里列出的软件包名称可能因MySQL版本和安装方式的不同而有所差异
请根据实际情况进行调整
3.删除MySQL数据目录和配置文件 卸载软件包后,我们还需要删除MySQL的数据目录和配置文件
这些文件通常位于`/var/lib/mysql`和`/etc/my.cnf`
可以使用以下命令删除它们: bash rm -rf /var/lib/mysql rm -rf /etc/my.cnf 此外,我们还需要删除MySQL的日志文件,通常位于`/var/log/mysqld.log`
这个文件如果不删除,可能会导致新安装的MySQL无法生成新的密码,从而出现无法登录的情况: bash rm -rf /var/log/mysqld.log 4.检查是否卸载干净 最后,我们需要检查是否卸载干净
可以使用`find`命令搜索系统中是否还存在与MySQL相关的文件: bash find / -name mysql 如果没有返回结果,说明MySQL已经卸载干净
二、编译安装MySQL 卸载原有MySQL后,我们可以通过编译安装的方式获取新的MySQL版本
以下是编译安装MySQL的详细步骤: 1.安装编译工具和依赖 在编译安装MySQL之前,我们需要先安装一些必要的编译工具和依赖
可以使用以下命令: bash yum groupinstall Development Tools -y yum install ncurses-devel bison cmake -y 2.下载MySQL源码包 接下来,我们需要下载MySQL的源码包
可以从MySQL的官方网站或源码仓库中获取
以下是从MySQL官方网站下载源码包的示例: bash wget https://downloads.mysql.com/archives/get/file/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 注意:这里下载的是MySQL5.7.33版本的二进制包,而不是源码包
如果你需要源码包,请从MySQL的源码仓库中获取
由于编译源码包需要较长时间,并且可能会遇到各种依赖问题,因此这里推荐使用二进制包进行安装
但如果你确实需要编译源码包,请继续阅读下面的步骤
如果你选择编译源码包,可以使用以下命令下载源码包(以MySQL8.0为例): bash wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.26.tar.gz 3.解压源码包 下载完成后,我们需要解压源码包: bash tar -zxvf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz 如果是二进制包 或者 tar -zxvf mysql-8.0.26.tar.gz 如果是源码包 注意:如果是二进制包,解压后可以直接使用;如果是源码包,则需要进入解压后的目录进行编译
4.编译和安装(针对源码包) 如果你选择的是源码包,需要进入解压后的目录进行编译和安装
可以使用以下命令: bash cd mysql-8.0.26 mkdir build cd build cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DWITH_BOOST=boost make make install 注意:这里的`-DCMAKE_INSTALL_PREFIX`指定了MySQL的安装目录,`-DSYSCONFDIR`指定了配置文件的目录,`-DWITH_BOOST`指定了Boost库的路径(如果系统中已经安装了Boost库,可以省略这个选项)
编译过程可能需要较长时间,请耐心等待
5.初始化数据库(针对源码包安装) 编译和安装完成后,我们需要初始化数据库
可以使用以下命令: bash cd /usr/local/mysql bin/mysqld --initialize --user=mysql 注意:这里的`--user=mysql`指定了MySQL服务的运行用户
如果系统中还没有这个用户,需要先创建它: bash useradd -r -M -s /bin/false mysql 初始化完成后,会在终端输出一个临时密码,用于首次登录MySQL
6.配置MySQL服务(针对源码包安装) 接下来,我们需要配置MySQL服务
可以创建一个systemd服务文件来管理MySQL服务: bash vi /etc/systemd/system/mysqld.service 在文件中添加以下内容: ini 【Unit】 Description=MySQL Server After=network.target After=syslog.target 【Service】 User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf LimitNOFILE =5000 【Install】 WantedBy=multi-user.target 然后,我们需要创建MySQL的配置文件`/etc/my.cnf`,并添加必要的配置信息
可以从MySQL的官方文档或示例配置文件中获取配置信息
7.启动MySQL服务 配置完成后,我们可以使用systemd启动MySQL服务: bash systemctl start mysqld 并使用以下命令检查MySQL服务的状态: bash systemctl status mysqld 8.设置开机自启动 为了使MySQL服务在系统启动时自动启动,我们可以使用以下命令设置开机自启动: bash systemctl enable mysqld 9.修改root密码和配置远程登录 最后,我们需要修改root用户的密码,并配置远程登录
可以使用以下命令找到MySQL的临时密码: bash grep temporary password /var/log/mysqld.log 然后使用临时密码登录MySQL: bash mysql -uroot -p 登录后,使用`ALTER USER`命令修改root用户的密码: sql ALTER USER root@localhost IDENTIFIED BY 新密码; 注意:MySQL5.7及以上版本默认安装了密码安全检查插件(validate_password),默认密码检查策略要求密码必须包含大小写字母、数字和特殊符号,并且长度不能少于8位
如果设置的密码不符合要求,会提