把mysql数据库从win10迁移到linux

转自:https://blog.csdn.net/joseph25/article/details/80264403

使用linux上的MySql发现可能是版本的原因,死活找不到加载csv文件的选项,找了个舍近求远的方法,用win10的MySQL加载csv文件,然后迁移到linux系统。

linux下登录mysql:

格式: mysql -h主机地址 -u用户名-p用户密码

1、例1:连接到本机上的MYSQL

一般可以直接键入命令

mysql -uroot -p

mysql -uroot -p

方法一:

https://www.cnblogs.com/xiyushimei/p/7839228.html

1,进入本地MySQL的服务端

cd C:\Program Files\mysql-8.0.13-winx64\bin

2,导出数据库文件

C:\Program Files\mysql-8.0.13-winx64\bin>mysqldump -u root -h localhost -p -r c:\data1.txt -B lookuptable

c:\data1.txt   是导出的数据放到c盘的data1.txt文件中,-B后面的lookuptable是要导出的表名

c:/data.txt这个目录和导出的文本名可以自己随便取,-B 后面的是表名,我要导出的表明叫lookuptable。输入密码之后,就可以去保存的目录下看看有没有数据文件了,有的话就成功了,感觉可能失败的地方就是没有cd到mysql的bin目录下或者是路径写错了还有最可能出错的是没有以管理员权限运行,会出现Errcode: 13 - Permission denied。

3,去c盘查看数据,然后上传到linux       /opt/date/

4,打开linux,进入MySQL

mysql -uroot -p

5,创建与windows上同名的数据库名,并设置字符集

mysql>create database unicode

mysql>alter database unicode character set utf8 //具体字符集设置,方法二里有

6.出现报错

ERROR 1273 (HY000): Unknown collation: 'utf8mb4_0900_ai_ci'

将data1.txt 中的utf8mb4_0900_ai_ci 更改为 utf8_general_ci

6,载入:

      source /home/zhouyan/data1.txt

7,查看

mysql>show tables;

 

方法二:(这个方法没有测试,尝试使用bench直接导入sql文件,失败)

1,利用windows的客户端导出个.sql的文件

2,上传到Linux系统上 /opt/date

3,进入linux,mysql

mysql -u root -p

4,创建与windows上同名的数据库名,并设置字符集

mysql>create database unicode character set utf8;

mysql>show variables like "%char%";

       

       如果还有很多文件的格式不是utf8,进行下部修改

 

 

            MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件

            解决方法:只需要复制一个/usr/share/mysql目录下的.cnf文件到/etc目录,并改名为my.cnf即可

[client]

default-character-set=utf8

 

# The MySQL server

[mysqld]

character_set_server = utf8

 

[mysql]

no-auto-rehash

default-character-set=utf8

 

然后Linux系统下重启MySQL:service mysql restart

 

5,mysql>use unicode

      mysql>source /opt/date/xx.sql

6,查看

mysql>show tables;

 

然后发现linux系统下用mysql 的loaddata语句也是可以加载csv文件的,就不需要借助windows系统,也可以直接对csv文件进行整理(整了一天出来了!!)

load data local infile '/home/zhouyan/buildtable.csv' into table lookuptable.lookuptable fields terminated by ',' optionally enclosed by '"' escaped by '"'lines terminated by '\r\n';

 

ERROR 29 (HY000): File '/home/zhouyan/buildtable.csv' not found (Errcode: 13)

参考网上加local关键字的方法,依然不好使:ERROR 1148 (42000): The used command is not allowed with this MySQL version

参考:https://blog.csdn.net/xiaolang85/article/details/52094164?utm_source=blogxgwz2

a.配置命令load data local infile

  1. [mysqld]        #服务端配置  
  2. local-infle = 1  
  3.   
  4. [mysql]         #客户端配置  
  5. local-infile = 1  

b.load data语句,各种跳过

mysql> load data local infile '/home/zhouyan/buildtable.csv' into table lookuptable.lookuptable fields terminated by ',' optionally enclosed by '"' escaped by '"'lines terminated by '\r\n';
Query OK, 0 rows affected (0.37 sec)
Records: 184371  Deleted: 0  Skipped: 184371  Warnings: 0

 

c.清空要加载的表

delete from lookuptable.lookuptable;
truncate table lookuptable.lookuptable;

d.emm加载成功了

 

Query OK, 184371 rows affected (9.31 sec)
Records: 184371  Deleted: 0  Skipped: 0  Warnings: 0

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值