更改MySQL数据存储路径的方法

MySQL是一个关系型数据库管理系统,当前属于Oracle公司产品。MySQL是最流行的关系型数据库管理系统之一。由于关系数据库将数据保存在不同的表中,因此,能够大大增加了访问速度并提高了灵活性。

目前,在国内外众多的Linux系统的主机产品中,均采用MySQL数据库的,也就是我们常说的PHP+MySQL运行环境。一般情况下,使用虚拟主机空间的话,主机商已经为我们配置好了MySQL数据存储路径。但是,对于服务器来说,MySQL数据库的存储位置我们是可以自行设置的。

刚好,最近一段时间来,很多使用RAKSmart服务器的朋友都有问起,“怎样更改MySQL数据存储路径”。为此,这里就来简单介绍下更改MySQL数据存储路径的简单方法。

一般情况下,MySQL默认的数据文件存储目录为/var/lib/mysql,假如你要把目录移到/home/database下面,那么需要进行以下几步:

1、首先在home目录下建立database目录

命令:cd/homemkdir data

2、接下来把MySQL服务进程停掉:

命令:mysqladmin -u root -p shutdown

3、把/var/lib/mysql整个目录移到/home/database下面

命令:mv /var/lib/mysql /home/database/

通过这三个步骤,我们就把MySQL的数据文件移动到了/home/database/mysql下

4、接下来,我们找到my.cnf配置文件

如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf。命令如下:

[root@test1 mysql]# cp /usr/share/mysql/my-medium.cnf /etc/my.cnf

      更改MySQL数据存储路径的方法

      5、编辑MySQL的配置文件/etc/my.cnf

当然,为保证MySQL能够正常工作,需指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock。具体操作如下:

vi  my.cnf(用vi工具编辑my.cnf文件,找到下列数据修改之)# The MySQL server[mysqld] port=3306#socket=/var/lib/mysql/mysql.sock(原内容为了更稳妥用“#”注释此行)socket=/home/database/mysql/mysql.sock(加上此行)。

6、修改MySQL启动脚本/etc/init.d/mysql

最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径,即:home/database/mysql。

[root@test1 etc]# vi /etc/init.d/mysql#datadir=/var/lib/mysql(注释此行)datadir=/home/database/mysql (加上此行)。

当然,如果是CentOS还要改/usr/bin/mysqld_safe 相关文件位置;最后再做一个mysql.sock链接。命令如下:

in -s /home/database/mysql/mysql.sock /var/lib/mysql/mysql.sock

7、重新启动MySQL服务

/etc/init.d/mysqld start,或用reboot命令重启Linux。

更改MySQL数据存储路径的方法

      如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。

复制内容到剪贴板

详细代码如下:

[root@sample ~]# chown -R mysql:mysql /home/data/mysql/  ← 改变数据库的归属为mysql

[root@sample ~]# chmod 700 /home/data/mysql/test/  ← 改变数据库目录属性为700

[root@sample ~]# chmod 660 /home/data/mysql/test/*  ← 改变数据库中数据的属性为660

此外,如果大家按照以上方法设置,如果出现错误的,那么可能是由于以下2个原因引起的。

第一、在CentOS系统上,如果MySQL是通过yum安装的,那么可能使用上面的方法不能完全凑效。

原因:MySQL的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config。

因为,这个文件里面有一行“ldata=’/var/lib/mysql’”和”socket=/var/lib/mysql/mysql.sock”,这里也需要改掉的。

第二、可能是由于权限问题导致的,大家可以查看/var/log/mysqld.log,如果发现Can’t create test file /xxx/mysql/centos5.lower-test提示,那么就是因为没有权限创建或读取文件。

当然,解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start 发现OK了。

另外一种方法是:restorecon -FRv /home/database/mysql,或chcon -R -t mysqld_db_t /home/database/mysql,这样也可以解决的。

总之,在Linux主机中,大多数据朋友会把数据存储在默认位置了。不过有的朋友为了方便,可能需要更换MySQL数据库存储位置,如果大家想更改的话,可以按照上述方法就行设置就可以了。

本文由美国主机侦探(www.idcspy.com)原创,转载请注明!

温馨提示:

1、本文评论没有专人回复,如果您有问题请到美国主机侦探论坛提问!

2、美国主机侦探免费为您提供美国主机购买咨询,请扫码添加企业微信好友:

美国主机侦探企业微信
美国主机侦探企业微信二维码
微信添加好友
RAKsmart美国高防服务器

稳定的美国外贸空间推荐

性价比高的香港服务器推荐

返回顶部
优惠码复制提示
复制优惠码 成功,即将进入官网购买
正在跳转官网,请稍等。。。