yum 安装MySql与变更存储路径
本次实验所需系统环境:
[root@mysql-server-01 ~]# lsb_release -a
LSB Version: :core-4.1-amd64:core-4.1-noarch:cxx-4.1-amd64:cxx-4.1-noarch:desktop-4.1-amd64:desktop-4.1-noarch:languages-4.1-amd64:languages-4.1-noarch:printing-4.1-amd64:printing-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 7.7.1908 (Core)
Release: 7.7.1908
Codename: Core
[root@mysql-server-01 ~]# mysql -V
mysql Ver 14.14 Distrib 5.6.48, for Linux (x86_64) using EditLine wrapper
开始安装
-
yum安装是最简便和稳定的安装方式,centos7默认安装的是mariadb,需要先卸载mariadb,先查看是否安装mariadb
rpm -qa | grep mariadb
如果找到,则拷贝结果,使用下面命令删除,如删除mariadb-libs-5.5.35-3.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.35-3.el7.x86_64
卸载以后可以重新执行命令查看是否有安装mariadb。如果没有请继续
-
安装源,会在 /etc/yum.repos.d/ 下生成 mysql-community.repo 文件
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
-
安装源
rpm -ivh mysql-community-release-el7-5.noarch.rpm
-
查看源是否生效并安装
yum repolist all | grep mysql
yum install mysql-server
-
配置开机启动
systemctl enable mysqld.service
6.此处不要着急启动mysql,先来修改配置文件,变更mysql的存储路径为自定义路径;经验证,此处没有手动创建的会自动生成。可忽略此处配置,直接修改my.cnf文件就好。
mkdir /data/mysql //创建自定义路径并修改权限和属组
chown 755 -R /data/mysql && chmod mysql:mysql /data/mysql
vim /etc/my.cnf
20 datadir=/data/mysql //修改这行为自定义路径,sock的路径可以保持默认
-
附上一份原来的配置。
-
修改启动脚本,原来的是/var/lib/mysql,本次都改成/data/mysql/,也可以根据你的路径修改,修改的时记得对比原来的改。
vim /usr/bin/mysql-systemd-start
22 datadir=$(get_option mysqld datadir "/data/mysql")
25 if [ ! -d "$datadir" -a ! -h "$datadir" -a "x$(dirname "$datadir")" = "x/data" ]; then
36 if [ -x /usr/sbin/semanage -a -d /data/mysql -a -d $dir ] ; then
37 /usr/sbin/semanage fcontext -a -e /data/mysql $dir >/dev/null 2>&1
55 datadir=$(get_option mysqld datadir "/data/mysql")
还是这个配置文件,把这个循环注释或者删除掉
-
修改完后还不能着急启动,关闭selinux和防火墙,尤其是第一个,不关闭mysql启动会报错。
[root@myc-test ~]# getenforce
Enforcing
[root@myc-test ~]# setenforce 0
[root@myc-test ~]# getenforce
Permissive
[root@myc-test ~]# firewall-cmd --state
running
[root@myc-test ~]# systemctl stop firewalld.service
[root@myc-test ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@myc-test ~]# firewall-cmd --state
not running
-
好了,此时可以启动mysql服务了。去你的自定义路径下看是否有mysql初始化生成的文件
systemctl start mysqld.service
本次实验到此结束!!