centos 7.x 安装 / 卸载 MySQL
本篇是基于 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
访问:https://dev.mysql.com/downloa…,选择合适的版本下载。
也可以直接在服务器上使用 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
以上,可以看到所有 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
出了最后一个安装文件,上面的都可以卸载,执行命令:
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 卸载了。