1若已经安装了mysql,则
先关闭mysql服务,然后卸载mysql-community-server-5.7.22-1.el7.x86_64
[root@mysql01 etc]# rpm -e --nodeps mysql-community-server-5.7.22-1.el7.x86_64
2找到mysql的配置文件 /etc/my.cnf
根据配置文件找到datadir的默认目录 默认是
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
修改成 datadir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock # socket不要修改,只修改datadir
别的像socket等不要动
3 重新安装mysql-community-server-5.7.22-1.el7.x86_64
[root@mysql01 ~]# rpm -ivh mysql-community-server-5.7.22-1.el7.x86_64.rpm
4 重新启动 mysql
重启mysql,启动不起来
[root@mysql01 local]# systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
[root@mysql01 local]#
扩展: 改变 某个文件夹或文件所属的用户和组(此文中用不到)
[root@mysql01 local]# chown -R mysql:mysql /usr/local/mysql/
查看日志文件 /var/log/mysqld.log ,发现报警告
[Warning] Can't create test file /usr/local/mysql/mysql01.lower-test
这是因为没有权限创建或读取文件。
解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 systemctl start mysqld.service 就ok了。
[root@mysql01 zookeeper-3.4.12]# getenforce
Enforcing
[root@mysql01 zookeeper-3.4.12]# setenforce 0
[root@mysql01 zookeeper-3.4.12]# getenforce
Permissive
更改之后,再启动mysql服务,就能启动起来了
[root@mysql01 zookeeper-3.4.12]# systemctl start mysqld.service
[root@mysql01 zookeeper-3.4.12]#
然后就是查找临时密码进行登录,登陆后重设密码什么的。
如果重设密码有问题,可查看我这篇文章,centos7下安装mysql5.7(rpm)里面有解决方案。
如何查询datadir是不是我们改过后的:使用mysql命令 select @@datadir;