centos7离线安装mysql-5.7.20

先说一下卸载

rpm -qa |grep -i mysql

如果有以下信息
mysql-community-libs-5.7.20-1.el7.x86_64
mysql-community-client-5.7.20-1.el7.x86_64
mysql-community-common-5.7.20-1.el7.x86_64
mysql-community-libs-compat-5.7.20-1.el7.x86_64
mysql-community-server-5.7.20-1.el7.x86_64
执行

yum remove mysql-community-libs-5.7.20-1.el7.x86_64

进行删除
基本是执行一个就全部删除了。
再执行一下命令,看是否删除干净。

rpm -qa |grep -i mysql

查找相关目录

find / -name mysql

/etc/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/bin/mysql
/usr/lib64/mysql
/usr/share/mysql
删除以上目录
再删除/etc/my.cnf、/var/log/mysqld.log(会导致无法生成新密码)
用rm -rf命令删除以上内容
安装前需要先安装perl,大体需要下面四个安装包
rpm -ivh perl-libs-5.16.3-297.el7.x86_64.rpm
rpm -ivh perl-Getopt-Long-2.40-3.el7.noarch.rpm
rpm -ivh perl-Carp-Clan-6.04-10.el7.noarch.rpm
rpm -ivh perl-5.16.3-297.el7.x86_64.rpm
如果出现依赖要求,增加--nodeps参数
安装包可以到阿里云镜像下载
http://mirrors.aliyun.com/centos/7/os/x86_64/Packages/
perl -v 查看安装版本
安装顺序

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm

初始化

mysqld --initialize

启动mysql

systemctl start mysqld

查看状态

service mysqld status

碰到的问题


image.png

找不到/usr/bin/mysqld,到文件目录下一查还真没mysqld文件。
查看 mysqld.service文件,里面却写的ExecStart=/usr/bin/mysqld ,具体原因不明,难道是我下载版本有问题?
最后发现在mysqld在/usr/sbin目录下,因此将mysqld.service文件内改为 ExecStart=/usr/sbin/mysqld
再次执行

systemctl start mysqld.service

会提示
Warning: mysqld.service changed on disk. Run 'systemctl daemon-reload' to reload units.
按提示执行

systemctl restart mysqld.service
 systemctl daemon-reload

提示一下错误


image.png

提示/etc/mysql/目录找不到 /my.cnf,搜索发现 my.cnf在/etc/目录下,将my.cnf复制一份到/etc/mysql/目录下再启动
再次提示错误


image.png

不能拿root用户运行mysql
修改/etc/mysql/my.cnf文件,在文件最后增加

user=mysql
再次执行启动成功


image.png

主要问题出在 /etc/systemd/system/mysqld.service文件上
里面的配置信息和实际的安装目录不一致导致。具体愿意未具体确认。

你可能感兴趣的:(centos7离线安装mysql-5.7.20)