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卸载了。