Re: [问题] 修改mysql资料存放位置

楼主: kenduest (小州)   2014-10-12 20:50:04
※ 引述《onlyunmandy (曼蒂在云端)》之铭言:
: 各位好
: 原本的问题已经解决了...
: 但是怎么解决的我也不晓得= =
: 就一直重复更改动作就可以执行了...
: 我把datadir更改至/home/mysql,但mysql.sock还是在/var/lib/mysql
: (因为mysql.sock复制过去后更改位置他还是自动消失)
: 之前另外一台的设定也是这样,是没有问题的
: 但是这台......
: 他没有抓到我要放的/home/mysql位置
: 储存位置还是在/var/lib/mysql
: (my.cnf已经更改了喔喔喔~~~目录权限也有设定)
: 这台的状况是因为硬盘坏掉重灌了
: 然后厂商重灌后把系统档分割太小
: 原本的mysql资料档案过大无法全部回存(早已经放在/home/mysql里)
: 想说将储存路径修改至/home/mysql
: 将权限改好应该就可以了
: 但是一直发生问题...
: 是否有其他方式可以解决?
: 先谢谢大家了~~~ :)
1. mysql.sock 这是 unix domain socket file,简单说 mysql daemon 启动的
时候会产生这个档案,后续相关 client 端要存取 mysql 服务程式的话,于
mysql server 本机 client 端工具最快速的方式就是透过这类档案与 daemon
沟通就可以了。其他方式就是得走 tcp/ip 的 port 3306 来沟通,若连结的
client 不是在 mysql server 本机上就会用这个方式。
2. mysql 目录放在 /var/lib/mysql 目录内,若你要改到其他地方去的话有很多
种的方式。其中一种最简单就是把 /var/lib/mysql 这个目录搬移到某个目录内,
后续建立 symlink 档案就可以存取使用。ex:
==> mv /var/lib/mysql /home
==> ln -s /home/mysql /var/lib/mysql
(记得 ln -s 之前确认 /var/lib/mysql 目录已经搬移走或删除了,要不然
ln -s 会有错误结果)
这样存取 /var/lib/mysql 实际指向 /home/mysql 目录,所以 my.cnf 档案也
不需要有任何修改,程式还是会抓取 /var/lib/mysql 目录,但是最后会应对到
新的目录去。
若你是自己建立新的 /home/mysql 的话也可以,请注意 permission,owner 与
group 项目就好。比方我这边机器原本 /var/lib/mysql 的 owner/group 都是
mysql,所以就这样使用:
my.cnf :
[mysqld]
datadir=/home/mysql
然后...
==> mkdir /home/mysql
==> chown mysql:mysql /home/mysql
==> chmod 600 /home/mysql
若已经有现成的 /home/mysql 目录要使用,那记得 chown 多个 -R 把目录内
所有档案目录的 owner/group 也一并修正。
3. 目前 centos/rhel based 的 linux 发行版本默认都有启用 selinux 这个安全
架构环境,所以若你使用这类版本而且有启用 selinux 的话,手动建立 mysql
db 目录还不够,得自己变更一下 security context 设定允许存取。像是:
==> chcon -t mysqld_db_t -R /home/mysql
记得 my.cnf 档案应该是使用 mysqld_etc_t 这个安全本文,不正确的话
会被禁止存取。不确定可以用 ls -Z 方式观察...
[kendlee@server /]$ ls -lZ /etc/my.cnf
-rw-r

Links booklink

Contact Us: admin [ a t ] ucptt.com