使用了VPS一段时间之后发现磁盘空间快满了。本人的VPS在购买的时候买了500gbd的磁盘,提供商赠送了20GB的高性能系统磁盘。这样系统就有两个磁盘空间了。因此在初次安装MySQL 的是时候将数据库目录安装在了系统盘。(第一个磁盘)使用了一段时间之后数据库存储量变大,快将20GB的存放空间占满了。因此必须将存放数据空间换地方了。嘿嘿下面是简单的操作了,不合理之处还请大侠们指点。
操作步骤:
1.检查mysql数据库存放目录
mysql -u root -prootadmin
show variables like "%dir%";
quit;
(查看datadir 那一行所指的路径)
2.停止mysql服务
service mysqld stop
3.创建新的数据库存放目录
mkdir /data/mysql
4.移动/复制之前存放数据库目录文件,到新的数据库存放目录位置
cp -R /usr/local/mysql/data/* /data/mysql/ #或mv /usr/local/mysql/data/* /data/mysql
5.修改mysql数据库目录权限以及配置文件
chown mysql:mysql -R /data/mysql/
vim /etc/my.cnf
datadir=/data/mysql (制定为新的数据存放目录)
vim /etc/init.d/mysqld
datadir=/data/mysql
socket=/data/mysql/mysql.sock
6.启动数据库服务
service mysqld start
说明:根据以上的简单6步操作,已经成功的数据库目录更换路径了。
备注:以上系统为CentOS 6.2 x64 mysql-5.5.13
//======================================================================================================================================
//======================================================================================================================================
如果上述不行,请参考如下链接:
mysql更改数据存放目录
MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
1.home目录下建立data目录
2.把MySQL服务进程停掉:
1
|
mysqladmin -u root -p shutdown
|
3.把/var/lib/mysql整个目录移到/home/data
1
|
mv /var/lib/mysql /home/data/
|
这样就把MySQL的数据文件移动到了/home/data/mysql下
4.找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
1
|
cp /usr/share/mysql/my-medium.cnf /etc/my.cnf
|
5.编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock 。操作如下:
vi my.cnf (用vi工具编辑my.cnf文件,找到下列数据修改之)
1
2
3
4
|
# The MySQL server[mysqld]
port = 3306
#socket = /var/lib/mysql/mysql.sock
socket = /home/data/mysql/mysql.sock (加上此行)
|
6.修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
vi /etc/init.d/mysql
#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql (加上此行)
如果是CentOS还要改 /usr/bin/mysqld_safe 相关文件位置;
最后 做一个mysql.sock 链接:
in -s /home/data/mysql/mysql.sock /var/lib/mysql/mysql.sock
7.重新启动MySQL服务
/etc/init.d/mysqld start
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的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
错误解决方案:
1.在CentOS上,如果mysql是通过yum安装的,那么可能使用上面的方法不能完全凑效。
原因:mysql的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config
这个文件里面有一行“ldata="/var/lib/mysql"”和"socket=/var/lib/mysql/mysql.sock",这里也需要改掉
2.另外,还有权限问题,查看/var/log/mysqld.log,发现Can"t create test file /xxx/mysql/centos5.lower-test
这里是因为没有权限创建或读取文件。
解决办法就是使用setenforce 0 这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start 发现OK了。
如果要彻底禁用SELinux 需要在/etc/sysconfig/selinux中设置参数selinux=0
另外一个办法是restorecon -FRv /home/data/mysql,或者chcon -R -t mysqld_db_t /home/data/mysql
<script>window._bd_share_config={"common":{"bdSnsKey":{},"bdText":"","bdMini":"2","bdMiniList":false,"bdPic":"","bdStyle":"0","bdSize":"16"},"share":{}};with(document)0[(getElementsByTagName("head")[0]||body).appendChild(createElement("script")).src="http://bdimg.share.baidu.com/static/api/js/share.js?v=89860593.js?cdnversion="+~(-new Date()/36e5)];</script>
阅读(52) | 评论(0) | 转发(0) |
0
上一篇:Docker——Windows下使用方法
下一篇:deeplearning-python-dlib、opencv安装及使用
相关热门文章
- python 多进程之管道实例(模...
- MySQL数据插入、修改、删除...
- 解决mysql“Access denied for...
- mysql启动的四种方式
- PostgreSQL安装详细步骤(wind...
- linux dhcp peizhi roc
- 关于Unix文件的软链接
- 求教这个命令什么意思,我是新...
- sed -e "/grep/d" 是什么意思...
- 谁能够帮我解决LINUX 2.6 10...
给主人留下些什么吧!~~
评论热议