mysql 本地数据目录迁移

需求:mysql的原目录没空间了,需要在本机中迁移mysql目录

mkdir -p /home/mysql3306/data
mkdir -p /home/mysql3306/log
mkdir -p /home/mysql3306/run/mysqld

原目录:/var/lib/mysql
迁移目标目录:/home/mysql3306/data
cp -r /var/lib/mysql/* /home/mysql3306/data/

chown -R mysql.mysql /home/mysql3306

————————————————————————————
vim /etc/my.cnf
#join_buffer_size = 128M
#sort_buffer_size = 2M
#read_rnd_buffer_size = 2M
#datadir=/var/lib/mysql
datadir=/home/mysql3306/data
#socket=/var/lib/mysql/mysql.sock
socket=/home/mysql3306/data/mysql.sock
lower_case_table_names=1
#Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections=1000
max_connect_errors=300
#Recommended in standard MySQL setup
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld_safe]
#log-error=/var/log/mysqld.log
log-error=/home/mysql3306/log/mysqld.log
#pid-file=/var/run/mysqld/mysqld.pid
pid-file=/home/mysql3306/run/mysqld/mysqld.pid
[mysql] ## 这里加2行,避免mysql -uroot -p的时候报找不到sock文件
socket=/home/mysql3306/data/mysql.sock
wq: 这里保存
————————————————————————————————
vim /etc/init.d/mysqld ## 修改下面的变量
get_mysql_option mysqld datadir "/home/mysql3306/data"
#get_mysql_option mysqld datadir "/var/lib/mysql"
datadir="$result"
get_mysql_option mysqld socket "$datadir/mysql.sock"
socketfile="$result"
get_mysql_option mysqld_safe log-error "/home/mysql3306/log/mysqld.log"
#get_mysql_option mysqld_safe log-error "/var/log/mysqld.log"
errlogfile="$result"
get_mysql_option mysqld_safe pid-file "/home/mysql3306/run/mysqld/mysqld.pid"
#get_mysql_option mysqld_safe pid-file "/var/run/mysqld/mysqld.pid"
——————————————————————————————————

/etc/init.d/mysqld stop
/etc/init.d/mysqld start
mysql -uroot -p 验证下是否数据都在
desc 表名;
保错 SQLSTATE[HY000]: General error: 1030 Got error 28 from storage engine
这是因为/tmp 目录没空间了,rm -rf /var/lib/mysql 释放空间即可,删除别的文件也行,只要能释放些空间即可。

完成

原文地址:http://blog.51cto.com/bajiebushizhu/2096203

时间: 2024-10-10 12:15:30

mysql 本地数据目录迁移的相关文章

迁移mysql 的数据目录

MySQL默认的数据文件存储目录为/var/lib/mysql.假如要把目录移到/home/data下需要进行下面几步: 1.在home下建立目录  mkdir -p /home/data/mysql 2.停掉mysqld服务 /etc/init.d/mysqld stop 3. 把/var/lib/mysql目录下面的内容迁移到/home/data/mysql 下面 4.修改 my.cnf 配置文件 如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.

mysql 数据库数据迁移 The user specified as a definer ('root'@'%') does not exist 解决方法

从一个数据库数据迁移到本地localhost 程序在调用到数据库的视图时报错,直接在数据库中打开视图时也报错,类似: mysql 1449 : The user specified as a definer ('montor'@'%') does not exist 经查,是权限问题,解决办法: 运行:grant all privileges on *.* to [email protected]"%" identified by "."; 之后打开视图时便不会报错

轻松上云系列之一:本地数据迁移上云

背景信息在云计算服务高速发展的今天,如何方便快捷地将已有的服务器系统迁移上云,有着非常重要的意义.阿里云服务器迁移服务方案,即迁移服务,正是在这个需求背景下应运而生.它极大地简化了服务器系统迁移工具的使用条件.降低了使用成本,使用户的系统一键迁移到阿里云成为可能. 使用迁移服务来进行系统迁移比较便捷,您可以先参考迁云工具帮助文档了解使用条件及基本操作. 迁移流程1.熟悉迁移工具使用方法,提前做好测试演练. 2.评估迁移时间/成本,制定迁移计划. 3.正式迁移,可咨询阿里云团队支持. 数据传输服务

Linux Yum安装mysql的数据库迁移目录

Linux Yum安装mysql的数据库迁移目录 前言:因公司数据库目录存储满了,无法加空间进行更换数据目录Warning:更换数据目录之前先问一下有么有在用,或者又没用风险之类的,如果数据库有读写或者其他操作建议晚上进行操作.1.停用MySQL数据库 [[email protected] ~]# systemctl stop mysqld 2.查看数据现存目录迁移至所需目录 [[email protected] ~]# cat /etc/my.cnf | grep datadir datadi

零基础mysql数据库表迁移

@ 把老数据库中的某个表倒出成sql文件 $mysql -uroot -p my_db > my_db.sql (输入密码) @ 在新环境中导入 $sudo apt-get install mysql-server -y (期间要初始化root用户的密码) $mysql -uroot -p (输入密码) mysql> show databases;(注意分号) mysql> create database my_db; mysql> show databases; mysql>

解决MySql本地能访问,远程不能访问的问题

本地能够连接mysql,为何远程连接不上mysql呢?这是因为默认安装的mysql,出于安全考虑,只能本地连接.如果您需要远程连接,这里就需要设置一下mysql的权限表.具体设置的步骤如下: 1.在MySql本机连接mysql. 2.执行以下mysql命令: use mysql                #打开mysql数据库 #将host设置为%表示任何ip都能连接mysql,当然您也可以将host指定为某个ip update user set host='%' where user='r

如何将本地数据库迁移至SQL Azure

Windows Azure的SQL Azure和SQL Server 拥有不同的体系结构,可以说是两个不同的产品.SQL Azure不完全支持或者尚不支持SQL Server的某些功能,这使得我们不能像平常一样使用bak文件还原的方式迁移数据库,也不能使用数据导入导出向导.很多SQL Server的特性在SQL Azure中不被支持. 那我们怎样才能将现有数据库迁移到SQL Azure上呢? 一."将数据库部署到SQL Azure"向导 我最先想到的是这个向导,对数据库右键=>任

一步完成MySQL向Redis迁移

在把一个大表从 MySQL 迁移到 Redis 时,你可能会发现,每次提取.转换.导入一条数据是让人难以忍受的慢!这里有一个技巧,你可以通过使用管道把 MySQL 的输出直接输入到 redis-cli输入端,这可以使两个数据库都能以他们的最顶级速度来运行. 使用了这个技术,我把 800 万条 MySQL 数据导入到 Redis 的时间从 90 分钟缩短到了两分钟. Mysql到Redis的数据协议 redis-cli命令行工具有一个批量插入模式,是专门为批量执行命令设计的.这第一步就是把Mysq

如何导出和导入mysql数据(数据迁移)

本文转自 如何导出和导入mysql数据(数据迁移) 这是其中一种方法,非常简单 1. 导出数据库数据 mysqldump -uroot -p dp_db > dumpout.sql 其中 root是账户名 dp_db是需要导出的数据库名称 dumpout.sql存储导出的数据 2. 将导出的数据dumpout.sql放到你的目标机器上(如果是远程目标机器的话,直接将dunmpout.sql copy到目标机器就行).这里假设cp到主目录下~/ 3. 在目标机器的数据库里建立新数据库,这里建立名为