如何将mysql运行在非默认目录中
发布网友
发布时间:2022-04-20 04:21
我来回答
共1个回答
热心网友
时间:2022-04-07 21:38
1.停止数据库服务:
使用/etc/init.d/mysql
stop
或者
stop
mysql
2.
在目标位置(/data)创建数据库文件的目录(如/mysqldb),并复制(如果不再使用默认的位置,则可以直接mv原先数据库文件到新目录下)原先的数据库文件目录到该目录下:
cd
/data
mkdir
mysqldb
cp
-r
/var/lib/mysql
/data/mysqldb/
经过一段时间的等待后,在/data/mysqldb/下面就有了原先默认的mysql数据库文件目录的拷贝“/mysql”
3.修改my.cnf文件
#
vim
/etc/mysql/my.cnf
将datadir
=
/var/lib/mysql
改为
datadir
=
/data/mysqldb/mysql
另外由于当前my.cnf
中的socket
=
/var/run/mysqld/mysqld.sock(而并非像网上所说的sock
=
/var/lib/mysql/mysql.sock),即socket的位置并不在数据库文件所在的位置,因此可以不做类似网上其他网页所说的,要使用以下的命令做一个mysql.sock
链接:
ln
-s
/data/mysqldb/mysql/mysql.sock
/var/lib/mysql/mysql.sock
(需要从/home/data/mysql下复制一份过来)
4.
修改数据库的权限:
#
chown
-r
mysql:mysql
/data/mysqldb/mysql/
←
改变数据库文件目录的归属为mysql
#
chmod
700
/data/mysqldb/mysql/whois/
←
改变数据库目录whois的属性为700
#
chmod
660
/data/mysqldb/mysql/whois/*
←
改变数据库中数据表的属性为660
5.
修改文件usr.sbin.mysqld
#
vim
/etc/apparmor.d/usr.sbin.mysqld
把
/var/lib/mysql
r,
/var/lib/mysql/**
rwk,
改成
/data/mysqldb/mysql/
r,
/data/mysqldb/mysql/**
rwk,
注意:没有该步骤的话,将导致数据库服务无法重启,好像在重启,但是一直卡住无反应。
6.启动mysql服务器
/etc/init.d/apparmor
restart
/etc/init.d/mysql
restart
(或者使用
restart
mysql)