扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
mysql数据库的导入,有两种方法:
云浮网站制作公司哪家好,找创新互联建站!从网页设计、网站建设、微信开发、APP开发、响应式网站设计等网站项目制作,到程序开发,运营维护。创新互联建站成立与2013年到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联建站。
1)
先导出数据库sql脚本,再导入;
2)
直接拷贝数据库目录和文件。
在不同操作系统或mysql版本情况下,直接拷贝文件的方法可能会有不兼容的情况发生。
所以一般推荐用sql脚本形式导入。下面分别介绍两种方法。
2.
方法一
sql脚本形式
操作步骤如下:
2.1.
导出sql脚本
在原数据库服务器上,可以用phpmyadmin工具,或者mysqldump命令行,导出sql脚本。
2.1.1
用phpmyadmin工具
导出选项中,选择导出“结构”和“数据”,不要添加“drop
database”和“drop
table”选项。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项。
将导出的sql文件保存下来。
2.1.2
用mysqldump命令行
命令格式
mysqldump
-u用户名
-p
数据库名
数据库名.sql
范例:
mysqldump
-uroot
-p
abc
abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码。
2.2.
创建空的数据库
通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。
2.3.
将sql脚本导入执行
同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。
2.3.1
用phpmyadmin工具
从控制面板,选择创建的空数据库,点“管理”,进入管理工具页面。
在"sql"菜单中,浏览选择刚才导出的sql文件,点击“执行”以上载并执行。
注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
gzip使用方法:
#
gzip
xxxxx.sql
得到
xxxxx.sql.gz文件。
提示输入密码时,输入该数据库用户名的密码。
3
直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用。
3.1
准备原始文件
用tar打包为一个文件
3.2
创建空数据库
3.3
解压
在临时目录中解压,如:
cd
/tmp
tar
zxf
mydb.tar.gz
3.4
拷贝
将解压后的数据库文件拷贝到相关目录
cd
mydb/
cp
*
/var/lib/mysql/mydb/
对于freebsd:
cp
*
/var/db/mysql/mydb/
3.5
权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown
mysql:mysql
/var/lib/mysql/mydb/*
chmod
660
/var/lib/mysql/mydb/*
打字不易,如满意,望采纳。
mysql 导入数据库有2种方法,一种方法比较简单,直接使用navcat的运行sql文件,知道你的sql文件 直接导入就OK,但是本人导入的时候却出现错误,原因,现在也没搞清楚,第二种就是cmd 导入,这种方法有点复杂,本人也查看了网上的很多教程,发现讲的也不是很详细,所以以此博客来详细说明一下我的如何导入的,方便以后参考,好了现在开始介绍 cmd 导入sql文件方法;
第一步:首先,你必须把mysql 配置好,将myslql安装路径下的bin配置到系统环境变量的path下;
第二步:运行cmd,输入 : mysql -uroot -p 正确的话 应该是提示你输入密码,密码是你自己安装的时候设置的,如果你忘记了,那么....重装吧;密码正确之后就进入了 mysql了 可以对 mysql 进行操作了;
第三步:输入 use orderdish (orderdish是我创建的数据库,你要输入你需要导入的数据库名);enter之后会提示:database changed
第四步:输入 source c:\orderdish.sql 利用source导入sql 文件,后面对应的是你需要导入的sql路径, 注意:\ 需要加上去;
如图,
另外,如果出现了中文乱码的话,就在 mysql -uroot -p密码 后面加上 --default-character-set=utf8 就好了,
例如:mysql -uroot -p123 --default-character-set=utf8
方法如下,举例说明:
1、创建测试表,即为要被导入的表:
create table person(
id int not null auto_increment,
name varchar(40) not null,
city varchar(20),
salary int,
primary key(id)
)engine=innodb charset=gb2312;
2、接着写一个用于导入的文本文件:c:\data.txt。
张三 31 北京 3000
李四 25 杭州 4000
王五 45 \N 4500
小明 29 天津 \N
每一项之间用Tab键进行分隔,如果该字段为NULL,则用\N表示。
3、导入数据
输入命令,进行导入。
load data local infile “c:/data.txt”
into table person(name,age,city,salary);
导入数据截图如下:
其中local表示本地。执行后,可以看到NULL数据也被正确地导入。
通过命令行导入(要求列与列之间以 英文逗号 分割,若字段中含有 , 则以 " 包裹)
load data infile 'D:/mysql-5.7.29-winx64/files/ratings_5.csv' into table ratings fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\r\n';
踩坑一:文件路径用 \ 分割会报错,用 / 可(用 \\ 应该也可)
踩坑二:load data 命令报错
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
在 my.ini 中加入(空字符串代表允许从一切目录导入)
[mysqld]
secure-file-priv=''
然后再 Windows 的服务中重新启动 mysql
踩坑三:csv 文件中第一行是诸如 userId 这样的列名
如果你的 csv 文件不大,直接使用 notepad++ 打开后删除第一行即可
但在我们这里,千万级别的文件 notepad++ 无法打开,这时可以考虑两种方法
1. 将 csv 文件传入 Linux 服务器删去第一行
由于不知道如何在 Win 10 中做这个操作,只能通过 Linux 中转执行
sed -i '1d' ratings.csv
检验是否成功,可以打印出第一行观察
cat ratings.csv | head -n 1
2. 通过工具把大的 csv 分成多个 notepad 能够打开的较小文件,对第一个文件删除第一行并依次导入
工具:splitcsv
亲测 5000000 条数据的 csv 文件可以在 notepad++ 中打开(只能同时打开 3 个)
这个工具还有个小坑:ratings_0.csv 的最后一行和 ratings_1.csv 的第一行是重复的,请手动删除
工具:navicat for MySQL
步骤:
1、打开navicat for MySQL,连接到数据库所在服务器。如本图就是连接到本地数据库。
2、创建一个空的数据库。在localhost处点右键,选择“新建数据库”,弹出窗口中填写新建的数据库名称,字符集一般选择UTF8即可(可根据实际情况更改),最后点击确定按钮,即可创建成功。
3、创建成功后,双击新建的数据库,使之变成绿色,即连接状态。
4、在badkano_test处点击鼠标右键,选择“运行sql文件”。
5、弹出窗口点“...”然后选择要导入的sql文件,点击打开。
6、最后点“开始”按钮,等待导入步骤执行完成即可。
1、首先打开phpstudy数据库安装目录,点击客户端中其他选项菜单中MySQL工具,点击打开数据库目录。
2、在bin文件目录下按shift键+右键点击在此处打开命令提示窗口。
3、语法输入mysqldump.exe -u 用户名 -p 数据库名称 导出路径。在桌面建立1.sql文件,将文件直接拖入命令提示框中导出路径中确认,输入密码root。
4、然后查看1.sql文件即导出成功。
5、然后进入数据库命令行模式,将刚才导出的test数据库进行删除掉。
6、先建立一个test名称数据库或者直接选择其他数据库,选择test数据库之后然后在进行导入,查看数据表被导入。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流