centos 7.x 安装/卸载MySQL

3,455 阅读4分钟

本篇是基于YUM Repository来安装MySQL的,具体方法在官网可寻,在此记录我的亲身安装过程。

1、安装必要的依赖组件

运行如下命令:

yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel

这个步骤不太容易出错,如果遇到了异常,请自行百度解决方法。

2、下载 YUM Repository

访问:dev.mysql.com/downloads/r…

也可以直接在服务器上使用wget命令下载,比如:

 wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

文件体积非常小,很快就能下载完成。

3、选择MySQL版本

上述下载的rpm文件实质上是一个bundle,涵盖了多个版本的MySQL,以及一些基础组件,默认使用的是MySQL8。

所以,如果你正好需要MySQL8.0版本,那么这个小节可以略过。否则,需要选择所安装的MySQL版本。

centos7默认是没有MySQL相关的repository,所以需要我们手动将刚刚下载好的repository加入到系统中去。

运行如下命令即可:

yum localinstall mysql80-community-release-el7-3.noarch.rpm

中途会让你确认,输入“y”即可。接下来运行如下命令来确认是否成功:

yum repolist all | grep mysql

repolist

以上,可以看到所有MySQL版本的启用状态,目前是mysql80-community处于enabled状态。假设要安装MySQL5.7版本,需要启用mysql57-community,并且禁用mysql80-community。

yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql80-community

如果系统提示:

-bash: yum-config-manager: command not found

那就需要手动编辑:

vim /etc/yum.repos.d/mysql-community.repo

里面的内容简单易懂,根据自己的需求,改变enabled的值,其他内容不用改动。修改完成后,以防改错,可以运行如下命令来查看究竟启用了哪个版本的MySQL:

yum repolist enabled | grep mysql

4、安装MySQL服务

运行命令:

yum install mysql-community-server

中间会有两次确认,都输入“y”即可。一切顺利,启动MySQL服务。

systemctl start mysqld.service

如果想看MySQL的运行状态,可以运行如下命令:

systemctl status mysqld.service

可能有读者想知道MySQL的安装目录,这里解释一下。

运行脚本:/usr/bin

mysqld服务脚本: /usr/sbin

MySQL数据目录:/var/lib/mysql

MySQL日志文件:/var/log/mysqld.log

5、初始化root账户

至此,MySQL服务安装成功了,但是还不知道root密码,需要重置。

但是,初次安装MySQL,会自动生成一个临时密码,这个密码被写入在了日志文件中,运行命令查看:

cat /var/log/mysqld.log | grep 'temporary password'

知道初始密码后,必须马上修改。凭此临时密码,先登录:

mysql -u root -p

登录进去后,除了修改密码,其他的操作是不被允许的,所以先把新密码设置好:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

至此,root密码被修改了,但是root账户还不能远程登录。 解决的办法有两个,其一是将root账户的host改为“%”,可以直接用以下的UPDATE语句:

UPDATE mysql.user SET host = '%' WHERE user='root';

其二,是新建一个账户,并给账户授权:

CREATE USER 'admin'@'%' IDENTIFIED BY 'new_password';
GRANT ALL ON *.* TO 'admin'@'%';

注意:以上都需要最后运行一条命令才能生效:

FLUSH PRIVILEGES;

实际上,应该严禁直接使用root账户,仅限运维人员本地登录才是对的。所以,在实际工作中,可以更为精细化的管理MySQL的权限,防止“悲剧”发生。

6、卸载MySQL

官方并未给出MySQL的卸载过程,但是可以类比Windows操作系统。在Windows上卸载软件是一件很容易的事情,在centos上也可以用类似的思维模式,只不过安装程序不同罢了。Windows可以更为自动化,而linux上还需要很多手动操作才行。

本小节内容并非标准操作,可能导致卸载失败,请读者自行甄别。

先把mysql服务停止:

systemctl stop mysqld.service

上述安装过程中的rpm文件其实就相当于Windows上的msi安装文件,在centos上也可以管理已安装的软件,运行如下命令查看所安装的MySQL:

yum list installed | grep mysql

list installed

出了最后一个安装文件,上面的都可以卸载,执行命令:

yum remove mysql-community-client mysql-community-common mysql-community-server mysql-community-libs mysql-community-libs-compat

最后,还要消灭MySQL的残留文件,先用命令查找出MySQL相关的文件:

whereis mysql

当然,find 命令也可以,这样的话就只能全盘扫描了。

find / -name mysql

将列出来的内容通过 rm 命令删除掉即可。

至此,就可以将整个MySQL卸载了。