最近刚做完mysql数据库的迁移,简单来说就是,把一个环境的库整体搬到另外一个环境中。
1、把要搬迁的数据库dump成一个sql文件
进入mysql安装目录的bin目录:
到处表和数据:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
mysqldump -uroot -p dbname > dbname .sql
导出表结构:
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
mysqldump -uroot -p -d dbname > dbname .sql
遇到的问题:
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/data/mysql/mysql.sock' (2) when trying to connect
这是说明在连接mysql的时候需要套接字文件:
netstat -ln | grep mysql查看mysql套接字文件
使用mysqldump --socket=/data/mysql/data/mysql.sock -u用户名 -p密码 数据库名 > 数据库名.sql,导出数据库
2、在新库上查看,发现非root用户没有使用库的权限,解决方法如下
使用root登录数据库
grant all privileges on 想授权的数据库.* to 'user1'@'%';
flush privileges;刷新权限才能生效。
3、在新库导入导出的数据
使用scp 数据库.sql root@192.168.1.1:/root/xxxx,将数据文件拷贝到新库的主机上
首先建空数据库
使用show databases和show tables查看当前用户的数据库和表
mysql>create database dbname ;
导入数据库
方法一:
(1)选择数据库
mysql>use dbname ;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/xxxx/dbname .sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql