目录
1.背景
由于某些服务器根目录的磁盘空间不足,而其他目录空间(比如/home)很充足,有些朋友又觉得给磁盘扩缩容很麻烦。对于这种情况,最好的办法就是指定数据存放目录。在使用过程中转移数据目录,如果不熟悉的朋友可能会遇到一些小麻烦,因此,最好是在安装的时候就指定数据目录。
2.清理环境
测试机IP:192.168.44.200
一般来说删除centos7自带的mariadb就可以了。
# 查看系统版本
[root@study ~]# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
[root@study ~]#
# 查找系统自带的 mariadb ,卸载掉
[root@study ~]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
# 如有依赖删除不了,加上参数 --nodeps 强制删除
[root@study ~]# rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
[root@study ~]#
如果之前安装过MySQL8.0或mariadb,则还需要清理配置文件及相关数据目录。如果之前安装过MySQL5.7,则需要卸载或升级相关依赖。
# 如之前安装过MySQL,可能还需要
yum -y remove mysql-community-server
# 以及清除mysql相关的文件夹。注意:此命令生产环境慎用
find / -name mysql | xargs -i rm -rf {}
3.安装mysql8.0
注意安装后先不要启动,否则MySQL会以默认的数据目录/var/lib/初始化数据库。
# 获取MySQL8.0源
wget https://dev.mysql.com/get/mysql80-community-release-el7-2.noarch.rpm
# 安装源
rpm -ivh mysql80-community-release-el7-2.noarch.rpm
# 安装MySQL
yum -y install mysql-community-server
4.修改数据存放目录
这里我们指定到/home。可以是任意目录,如果目录不存在的需要新建。
# 修改默认路径需要关闭selinux,否则MySQL会启动报错
# 临时关闭
setenforce 0
# 永久关闭
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
# 修改配置文件,注释掉原有的目录配置,指定新的目录,另外再配置一些常用设置
vi /etc/my.cnf
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
datadir=/home/mysql
socket=/home/mysql/mysql.sock
character-set-server=utf8
default_authentication_plugin=mysql_native_password
5.启动及修改密码
修改默认密码是必须的
# 启动MySQL并设置开机自启
systemctl start mysqld && systemctl enable mysqld
# 查看初始密码,MySQL启动成功才会有日志生成,才能查看到密码
grep 'password' /var/log/mysqld.log
# 使用查看到的密码登录MySQL,可能需要加-h参数指定127.0.0.1,否则无法登录
mysql -uroot -p -h127.0.0.1
# 修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Admin#2020';
# 退出
quit;
6.修改root权限,增加远程登录
# 使用新密码登录
mysql -uroot -p -h127.0.0.1
# 设置权限,退出
use mysql;
update user set host ='%' where user='root';
flush privileges;
alter user 'root'@'%' identified with mysql_native_password by 'Admin#2020';
flush privileges;
quit;
7.连接测试
设置防火墙策略,开放3306端口。我这里直接关闭防火墙。
systemctl stop firewalld && systemctl disable firewalld
连接测试
8.总结
MySQL8.0如果首次安装是非常简单的,但如果二次安装的话会有一些麻烦,主要原因是之前的数据没清理干净,因此要确保一次安装成功。MySQL安装并不复杂,不要怕报错,养成排查问题,解决问题的思路和习惯非常重要。