
mysql 5.7更改数据库的数据存储位置的解决方法

随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了。因此,必须要给存放的数据换个地方了。下面是操作过程中的一些步骤。记下来,以后日后查看。
1.修改mysql数据存放的目录
要修改两个地方,其一是修改/etc/my.cnf文件中的datadir。默认情况下:
datadir=/var/lib/mysql
因为我的/data/目录比较大,所以将其改为:
datadir=/data/mysql/
还要修改/etc/init.d/mysqld
文件,将datadir=”$result”
改为:
datadir=”/data/mysql”
2.停止mysql服务
service mysql stop
3.创建新的数据存放目录
mkdir /data/mysql
4.将数据移动到新的数据库存放目录里面
mv /usr/local/mysql/data/* /data/mysql
这里补充一点儿知识,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/
6.修改socket
在两个地方修改socket,/etc/my.cnf
socket=/data/mysql/mysql.sock
创建一个连接文件到/var/lib/mysql/mysql.sock
ln -s /data/mysql/mysql.sock /var/lib/mysql/mysql.sock
7.重启mysql服务
执行
service mysql restart
开始对数据库进行读写操作,发现有这样的问题:
读写:
ERROR 1146 (42S02): Table ** doesn't exist
创建表:
ERROR 1005 (HY000): Can't create table ‘runoob_tbl' (errno: 13)
解决办法:
在/data/mysql目录下,删掉ib_logfile*文件,这样innoDB引擎的表就正常了。
再执行
mysql> REPAIR TABLE ***;
对于数据量比较大表,这个过程可能会比较慢。执行完成后,MyISAM引擎的表也正常了。
mysql相关专题,需要的朋友可以参考下
MySQL中的数据库操作知识汇总
Mysql入门教程
Mysql 报错及解决办法
Mysql root密码操作方法
以上所述是小编给大家介绍的mysql 5.7更改数据库的数据存储位置的解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对我们网站的支持!
相关推荐
-
MySQL数据文件存储位置的查看方法
我们可能会有一个疑惑,那就是:当我们在本地(自己的电脑)安装完 MySQL 之后,也创建了很多的数据库啊.表啊,也存储了很多的数据啊,但是这些内容都存储到哪里了呢?特别是,当我们需要直接操作这些数据文件的时候,翻遍了整个电脑,却找不到 MySQL 的数据文件到底在哪里,这就有些坑爹啦! 在这里,教给大家一个非常简单的能够立即定位到 MySQL 数据文件的存储位置方法,即在 MySQL 客户端键入如下命令: show global variables like "%datadir%";
-
Centos7 移动mysql5.7.19 数据存储位置的操作方法
场景:随着数据量的增加,mysql所在的磁盘已占满,需要将data移动到空间较大的盘上. 方法: 1. 关闭mysql服务 service mysqld stop 2. 将data目录移动到空间较大的盘上 cp -a /usr/local/mysql/data/ /home/mysqldata/ -a :相当于 -pdr 的意思(参数pdr分别为:保留权限,复制软链接本身,递归复制): 3 . 修改配置文件my.cnf ... sql_mode=NO_ENGINE_SUBSTITUTION,ST
-
更改Mysql数据库存储位置的具体步骤
一.首先把mysql的服务先停掉. 二.更改MySQL配置文件My.ini中的数据库存储主路径 打开MySQL默认的安装文件夹C:\Program Files\MySQL\MySQL Server 5.1中的my.ini文件,点击记事本顶部的"编辑","查找",在查找内容中输入datadir后并点击"查找下一个"转到"Path to the database root数据库存储主路径"参数设置,找到datadir="
-
mysql 5.7更改数据库的数据存储位置的解决方法
随着MySQL数据库存储的数据逐渐变大,已经将原来的存储数据的空间占满了,导致mysql已经链接不上了.因此,必须要给存放的数据换个地方了.下面是操作过程中的一些步骤.记下来,以后日后查看. 1.修改mysql数据存放的目录 要修改两个地方,其一是修改/etc/my.cnf文件中的datadir.默认情况下: datadir=/var/lib/mysql 因为我的/data/目录比较大,所以将其改为: datadir=/data/mysql/ 还要修改/etc/init.d/mysqld文件,将
-
Java 使用poi把数据库中数据导入Excel的解决方法
Java 利用poi把数据库中数据导入Excel 效果: 使用时先把poi包导入工程的path,注意只需要导入poi包即可,下载后有三个jar包 核心代码: 连接数据库:DBConnection.java 复制代码 代码如下: package org.xg.db;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;i
-
Mysql 切换数据存储目录的实现方法
Mysql 切换数据存储目录的实现方法 今日,工作中遇到,mysql,存储所在分区空间都已使用完,导致mysql无法正常启动,为此只能迁移数据存储目录. 1.将现有的数据存储目录,转移到别的存储空间,今日转移时 50G的数据文件,拷贝了 30多分钟,有些慢. 2.修改my.cf配置文件 修改 存储目录 [mysqld] datadir=/home/mysql socket=/home/mysql/mysql.sock [mysql_safe] pid-file=/home/mysql/mysql
-
JSP实现从数据库导出数据到Excel下载的方法
本文实例讲述了JSP实现从数据库导出数据到Excel下载的方法.分享给大家供大家参考,具体如下: 关键代码: <%@ page contentType="application/msexcel" %> <% //response.setHeader("Content-disposition","inline; filename=videos.xls"); response.setHeader("Content-disp
-
MySQL数据误删除的快速解决方法(MySQL闪回工具)
概述 Binlog2sql是一个Python开发开源的MySQL Binlog解析工具,能够将Binlog解析为原始的SQL,也支持将Binlog解析为回滚的SQL,去除主键的INSERT SQL,是DBA和运维人员数据恢复好帮手. 一.安装配置 1.1 用途 数据快速回滚(闪回) 主从切换后新master丢数据的修复 从binlog生成标准SQL,带来的衍生功能 支持MySQL5.6,5.7 1.2 安装 shell> git clone https://github.com/danfengc
-
MySQL的自增ID(主键) 用完了的解决方法
在 MySQL 中用很多类型的自增 ID,每个自增 ID 都设置了初始值.一般情况下初始值都是从 0 开始,然后按照一定的步长增加(一般是自增 1).一般情况下,我们都是用int(11)来作为数据表的自增 ID,在 MySQL 中只要定义了这个数的字节长度,那么就会有上限. MySQL的自增ID(主键) 用完了,怎么办? 如果用 int unsigned (int,4个字节 ), 我们可以算下最大当前声明的自增ID最大是多少,由于这里定义的是 int unsigned,所以最大可以达到2的32幂
-
Mysql 报Row size too large 65535 的原因及解决方法
报错信息:Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535 向mysql的表插件一个字段 类型为text时,或修改一个字段类型为text时,报出上面的错误.其实我对这个错误的原因理解也不是很深,给出一些我查到的解释吧 大意是数据表中有一个设定长度为64K的字段索引,当表中字段(不知道是字段名字还是什么)不能超过这个长度,65,535所说明的是针对的是整个表的
-
5分钟快速了解数据库死锁产生的场景和解决方法
前言 加锁(Locking)是数据库在并发访问时保证数据一致性和完整性的主要机制.任何事务都需要获得相应对象上的锁才能访问数据,读取数据的事务通常只需要获得读锁(共享锁),修改数据的事务需要获得写锁(排他锁).当两个事务互相之间需要等待对方释放获得的资源时,如果系统不进行干预则会一直等待下去,也就是进入了死锁(deadlock)状态. 以下内容适用于各种常见的数据库管理系统,包括 Oracle.MySQL.Microsoft SQL Server 以及 PostgreSQL 等. 死锁是如何产生
-
Access数据库不能写不能更新的解决方法
Access数据库不能写,造成这种问题的原因是Web共享文件夹在NTFS分区里,而IUSR_***(Internet来宾帐户)没有足够权限.解决方法: 1.在文件夹选项里,将"使用简单文件共享"前的对勾去掉. 2.在Web共享文件夹属性里面的安全选项卡中点添加. 3.在选择用户或组的对话框中点高级. 4.点立即查找,随后在下面选择IUSR_***,确定. 5.返回文件夹属性,将IUSR_***权限设置为允许修改,写入 IIS不能读写数据库(ACCESS)问题原因主要是由于无法更新数据库
随机推荐
- 正则表达式语法规则及在Javascript和C#中的使用方法
- PHP基于自定义函数实现的汉字转拼音功能实例
- FCKeditor2.3 For PHP 详细整理的使用参考
- JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
- UIImage加载图片Images.xcassets加载方法的影响
- ORACLE中的日期加减操作实例介绍
- Oracle自我补充之trunc()函数的使用方法
- Jsp连接Access数据库(不通过建立ODBC数据源的方法)
- fleaphp crud操作之find函数的使用方法
- JS实现DIV高度自适应窗口示例
- MySQL多层级结构-区域表使用树详解
- jquery操作checkbox实现全选和取消全选
- javascript中BOM基础知识总结
- C#定时器实现自动执行的方法
- 微信小程序 数据封装,参数传值等经验分享
- AndroidImageSlider实现炫酷轮播广告效果
- Android RecylerView入门教程
- Vue组件开发之LeanCloud带图形校验码的短信发送功能
- 浅谈实现vue2.0响应式的基本思路
- Vue.js中的computed工作原理
其他
- secedit不是内部或外部命令
- vue 项目请求pulic资源
- Howler怎么传值
- GaussDB(for MySQL)记录查询执行时间
- r语言printf函数
- tensorboard一张图显示多个模型曲线
- idea配置maven home directory失败
- android 变量 dump
- js为iframe设置地址
- c# nullable取出
- 易语言 数值 保留两位小数
- 一句话导入wxcel中断开
- c#同一个aspx session冲突
- pycharm作为array查看
- thinkjs controller引用service内函数
- swing 计算文本框字符个数
- js请求.catch打个断点
- redistemplate批量获取value
- vue fetch 文件夹里的文件
- HOOK地址获取地址内容