mysql 5.7更换数据库数据存储位置的实例详解

Y2J
Lepaskan: 2017-05-22 14:41:51
asal
2692 orang telah melayarinya

随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了。所以要给存放的数据换个地方,下面小编给大家分享mysql 5.7更改数据库的数据存储位置的解决方法,一起看看吧

随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了。因此,必须要给存放的数据换个地方了。下面是操作过程中的一些步骤。记下来,以后日后查看。

1.修改mysql数据存放的目录

要修改两个地方,其一是修改/etc/my.cnf文件中的datadir。默认情况下:

datadir=/var/lib/mysql
Salin selepas log masuk

因为我的/data/目录比较大,所以将其改为:

datadir=/data/mysql/
Salin selepas log masuk

还要修改/etc/init.d/mysqld文件,将datadir=”$result”改为:

datadir=”/data/mysql”
Salin selepas log masuk

2.停止mysql服务

service mysql stop
Salin selepas log masuk

3.创建新的数据存放目录

mkdir /data/mysql
Salin selepas log masuk

4.将数据移动到新的数据库存放目录里面

mv /usr/local/mysql/data/* /data/mysql
Salin selepas log masuk

这里补充一点儿知识,innoDB引擎和MyISAM引擎的数据文件不一样。

针对MyISAM引擎, 数据文件以”*.frm”,”*.MYD”,”*.MYI”三个文件存储于”/var/lib/mysql”目录下的对应数据库文件夹中。直接将这些文件移动到新的数据存放目录里面,就可以。

针对innoDB引擎,数据则存储在”$innodb_data_home_dir” 的ibdata1文件中(一般情况),结构文件存在于table_name.frm中。

5.修改mysql数据库目录权限以及配置文件

chown mysql:mysql -R /data/mysql/
Salin selepas log masuk

6.修改socket

在两个地方修改socket,/etc/my.cnf

socket=/data/mysql/mysql.sock
Salin selepas log masuk

创建一个连接文件到/var/lib/mysql/mysql.sock

ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
Salin selepas log masuk

7.重启mysql服务

执行

service mysql restart
Salin selepas log masuk

开始对数据库进行读写操作,发现有这样的问题:

读写:

ERROR 1146 (42S02): Table ** doesn't exist
Salin selepas log masuk

创建表:

ERROR 1005 (HY000): Can't create table ‘runoob_tbl' (errno: 13)
Salin selepas log masuk

解决办法:

在/data/mysql目录下,删掉ib_logfile*文件,这样innoDB引擎的表就正常了。

再执行

mysql> REPAIR TABLE ***;
Salin selepas log masuk

对于数据量比较大表,这个过程可能会比较慢。执行完成后,MyISAM引擎的表也正常了。

mysql相关专题,需要的朋友可以参考下

MySQL中的数据库操作知识汇总

Mysql入门教程

Mysql 报错及解决办法

Mysql root密码操作方法

【相关推荐】

1. Mysql免费视频教程

2. 把mysql大数据导入Navicat时报错的方法详解

3. MYSQL解锁和锁表的实例详解

4. 如何提高百万条的数据库查询速度

5. 5个经常犯的数据库设计错误

Atas ialah kandungan terperinci mysql 5.7更换数据库数据存储位置的实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!