MySQL:修订间差异
无编辑摘要 |
无编辑摘要 |
||
第56行: | 第56行: | ||
== | == 导入导出 == | ||
=== | === 导入 === | ||
当需要导入大量本地数据到mysql数据库时,可使用<code>LOAD DATA LOCAL INFILE</code>命令。但</code>local_infile</code>选项默认关闭状态,需要打开。以下以导入5千万行CSV文件为例。 | {| class="wikitable" style="width: 100%; | ||
! 导入工具 | |||
! 支持格式 | |||
! 描述 | |||
|- | |||
| <code>LOAD DATA</code> 语句 | |||
| CSV等 | |||
| SQL语句 <code>LOAD DATA</code>用于加载数据文本类型数据。示例:<br \><br \>当需要导入大量本地数据到mysql数据库时,可使用<code>LOAD DATA LOCAL INFILE</code>命令。但</code>local_infile</code>选项默认关闭状态,需要打开。以下以导入5千万行CSV文件为例。 | |||
<syntaxhighlight lang="SQL"> | <syntaxhighlight lang="SQL"> | ||
-- 查看'local_infile'选项,并设置为ON | -- 查看'local_infile'选项,并设置为ON | ||
第75行: | 第82行: | ||
IGNORE 1 LINES; | IGNORE 1 LINES; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
|- | |||
| [https://dev.mysql.com/doc/refman/8.0/en/mysqlimport.html mysqlimport] | |||
| | |||
| mysqlimport工具是LOAD DATA 语句的命令行接口 | |||
|- | |||
| | |||
| | |||
| | |||
|} | |||
==资源== | ==资源== | ||
===官网=== | ===官网=== | ||
第81行: | 第98行: | ||
*[https://dev.mysql.com/doc/ MySQL 文档] | *[https://dev.mysql.com/doc/ MySQL 文档] | ||
=== | ===教程=== | ||
*[https://www.runoob.com/mysql/mysql-tutorial.html 菜鸟教程:MySQL] | *[https://www.runoob.com/mysql/mysql-tutorial.html 菜鸟教程:MySQL] | ||
== | ===网页=== | ||
*[https://zh.wikipedia.org/wiki/MySQL 维基百科:MySQL] | *[https://zh.wikipedia.org/wiki/MySQL 维基百科:MySQL] | ||
[[分类:数据库]] | [[分类:数据库]] |
2022年1月2日 (日) 05:28的版本
MySQL,一个开放源码的关系数据库管理系统,读作“My S-Q-L”。MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库。但被甲骨文公司收购后,大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库。
简介
时间轴
- 2008年1月16日,Sun(太阳微系统)正式收购MySQL。
- 2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美元的总额收购Sun电脑公司。
- 2013年6月18日,甲骨文公司修改MySQL授权协议,移除了GPL。但随后有消息称这是一个bug。
安装
使用Docker安装
安装Docker,然后直接从官网镜像启动一个mysql容器,并设置root用户密码为123456。
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql
了解更多 >> Docker Hub:MySQL
Ubuntu上安装
#更新软件源
sudo apt-get update
#
sudo apt-get install mysql-server
了解更多 >> MySQL文档:使用APT仓库安装
可能遇到问题
- 主机只有1G内存,mysql却占用很大内存。
在终端输入top查看各程序cup和内存等占用率,然后输入M,使结果按内存大小排序,可以看到mysqld的占用率高。直接修改mysql服务器的配置文件my.cnf,如果使用mysql容器,先进入容器终端。
#进入某个容器
docker exec -it some-mysql bash
#在容器内安装vim
apt-get update
apt-get install vim
#打开并修改my.cnf文件
vim /etc/mysql/my.cnf
#在文件里加入如下配置
performance_schema_max_table_instances=400
table_definition_cache=400
table_open_cache=256
performance_schema = off
#重启mysql
service mysql stop
service mysql start
#输入exit,退出容器,然后重启该容器
docker restart some-mysql
#用top命令查看内存占用率
- 错误:ERROR 1698 (28000): Access denied for user 'root'@'localhost'
导入导出
导入
导入工具 | 支持格式 | 描述 |
---|---|---|
LOAD DATA 语句
|
CSV等 | SQL语句 LOAD DATA 用于加载数据文本类型数据。示例:当需要导入大量本地数据到mysql数据库时,可使用 LOAD DATA LOCAL INFILE 命令。但local_infile选项默认关闭状态,需要打开。以下以导入5千万行CSV文件为例。
-- 查看'local_infile'选项,并设置为ON
show variables like 'local_infile';
set global local_infile=on;
-- 建test表
CREATE TABLE test(
user_id INT,
name VARCHAR);
-- 导入本地csv文件,如果第一行有标题使用IGNORE 1 LINES忽略
LOAD DATA LOCAL INFILE 'C:\\Users\\TESTWORK\\Desktop\\test_data.csv'
INTO TABLE test
FIELDS TERMINATED BY ','
IGNORE 1 LINES;
|
mysqlimport | mysqlimport工具是LOAD DATA 语句的命令行接口 | |