十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本文介绍 MySQL 8.0 shell 子模块 Util 的两个导入特性 importTable/import_table(JS和python 版本的命名差异)、importJson/import_json的使用方法。
成都创新互联拥有一支富有激情的企业网站制作团队,在互联网网站建设行业深耕十多年,专业且经验丰富。十多年网站优化营销经验,我们已为超过千家中小企业提供了成都网站制作、网站设计解决方案,按需制作,设计满意,售后服务无忧。所有客户皆提供一年免费网站维护!
其中 import_table 是通过传统 MySQL 协议来通信,Import_json 是通过 X 插件协议来通信。MySQL 一直以来提供导入文件 SQL 命令 load data infile(单线程)以及对应的可执行文件 mysqlimport(多线程)。
比如我导入 100W 行示例数据到表 ytt.tl1,花了 24 秒。这个已经是 MySQL 默认导入来的最快的。分析那我们现在看下 mysqlimport 工具的升级版,mysqlshell 的 util 工具集。
使用这两个工具之前,必须得临时开启 local_infile 选项。1. import_table建立 3306 端口的新连接我这里切换为 python 模式清空掉示例表 Ytt.tl1import_table 有两个参数,第一个参数定义导入文件的路径,第二个定义相关选项,比如导入的格式,并发的数量等。定义文件路径(参数1)定义选项(参数2)执行导入:只花了不到 17 秒,比传统 mysqlimport 快了不少。
我们上面指定了显式指定了字段分隔符,那有没有已经定义好的组合格式呢? 答案是有的,选项 dialect 可以指定以下格式:csv,tsv,json,csv-unix那么上面的导入,我们可以更简单,改下变量 y_options1 的定义导入时间差不多。这里要说明下,dialect 选项的优先级比较低,比如添加了'linesTerminatedBy':'\r\n', 则覆盖他自己的'\n'。
选项 diaelect 还有一个可选值为 json,可以直接把 json 结果导入到文档表里。比如我新建一张表 tl1_json重新定义文件以及导入选项。导入 JSON 数据速度也还可以,不到 24 秒。那导入 json 数据,就必须得提到以 X 插件协议通信的工具 import_json了。2. imort_json我们切换到 mysqlx 端口import_json 参数和 Import_table 参数类似,这里我改下选项我在手册上没有看到多线程的选项,所以单线程跑 35 秒慢了些。查看刚刚导入的数据import_json 不仅仅可以导入 Json 数据,更重要的是可以在 BSON 和 JSON 之间平滑的转换,有兴趣的同学可以去 TRY 下。
远程连接linux的数据库不需要执行任何linux系统命令,和linux系统无关,只要知道用户名、密码、数据库名称、IP地址就可以,还有个前提是数据库运行远程访问。
在XP cmd下执行你需要安装mysql客户端工具,能够执行mysql命令,然后执行
mysql -u用户名 -p密码 -hIP地址 数据库名称,然后回车,就可以登录进远程数据库了。
桌面左下角windows图标--搜索框内输入cmd,结果如图所示,点击cmd.exe,或者使用快捷键Windows键(在键盘上有个Windows标志的按键)+R输入cmd后回车。
在DOS命令窗口输入
mysql
-hlocalhost
-uroot
-p回车
进入mysql数据库,其中-h表示服务器名,localhost表示本地;-u为数据库用户名,root是mysql默认用户名;-p为密码,如果设置了密码,可直接在-p后链接输入,如:-p123456,用户没有设置密码,显示Enter
password时,直接回车即可。注意,如果你的mysql没有安装在C盘下,你需要先使用DOS命令进入mysql的安装目录下的bin目录中。以我的电脑为例,方法如下:输入D:进入D盘,在输入cd
D:\Tools\MySQL5.5.25\bin进入到mysql的bin目录下才可以输入
mysql
-hlocalhost
-uroot
-p
在mysql
后面就可以输入
SQL语句了
解决办法:执行命令 mysqladmin flush-hosts原因:mysql中默认的max_connect_errors是10,由于连接出错,造成这个数值高于10,当在访问的时候就被锁住了, 并屏蔽主机的进一步连接请求。 可以将这个值改的稍微高一些。 如果在给定主机上遇到该错误,首先应核实该主机的TCP/IP连接是否正确。
基本步骤如下:
一、创建包含sql命令的sql脚本文件
文件中包含一系列的sql语句,每条语句最后以;结尾,假设文件名为ss.sql,文件内容示例如下(使用“--”进行注释):--创建表create table 表名称(Guid Varchar(38) not null primary key,
Title Varchar(255),
) TYPE=InnoDB;--在表A中增加字段Status
alter table A add Status TinyInt default '0';--在表A上创建索引
create index XX_TaskId_1 on A(Id_);
--在A表中添加一条记录
Insert into A (Id,ParentId, Name) values(1,0,'名称');
--添加、修改、删除数据后,有可能需要提交事务
Commit;二、执行sql脚本文件方法一 使用cmd命令执行(以windows为例,unix或linux的在其类似的控制台下运行)
格式:【Mysql的bin目录】\mysql –u用户名 –p密码 –D数据库【sql脚本文件路径全名】
示例:D:\mysql\bin\mysql –uroot –p123456 -Dtestd:\test\ss.sql注意事项:1、如果在sql脚本文件中使用了use 数据库,则-D数据库选项可以忽略
2、如果【Mysql的bin目录】中包含空格,则需要使用“”包含,如:
“C:\Program Files\mysql\bin\mysql” –u用户名 –p密码 –D数据库【sql脚本文件路径全名】
3、如果需要将执行结果输出到文件,可以采用以下模式
D:\mysql\bin\mysql –uroot –p123456 -Dtestd:\test\ss.sqld:\dd.txt
方法二 进入mysql的控制台后,使用source命令执行
1、进入mysql控制台
D:\mysql\bin\mysql –uroot –p123456 -Dtest
首先连接数据库:
mysql -u username -ppasswd
查看所有数据库:
show databases;
选择你的数据库:
use dbname;
查看该数据库下所有表:
show tables;
查询表信息:
select * from tablename;