MySQL 数据库大家常常用到,免费而且小巧快速。最近需要在Ubuntu上搞点小东西用到数据库,就选择了mysql;
安装很简单
sudo apt install mysql-server
sudo apt install mysql-client
sudoapt install libmysqlclient-dev
建表时因为列数达到530个每个列设置为varchar(50),导致每行占用空间太大报错
Error Code: 1118. Row size too large (> 8126). Changing some columns to TEXT or BLOB may help. In current row format, BLOB prefix of 0 bytes is stored inline.
解决办法:
修改配置文件
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下添加
innodb_file_per_table=1
innodb_file_format=Barracuda
innodb_file_format_check = ON
innodb_log_file_size = 512M
innodb_strict_mode = 0
但是感觉只有innodb_strict_mode = 0起作用了,试了前面几个只有最后一句起作用了
导入CSV文件:
使用语句
load data infile '/var/lib/mysql-files/test.csv' into table `your_table` fields terminated by ',' optionally enclosed by '"' escaped by '"' lines terminated by '\n';
注意这里要查询导入导出文件位置:
SELECT @@global.secure_file_priv;
这里我的是“/var/lib/mysql-files/”把文件复制到该文件夹下再执行导入语句
再有一点就是更新数据了,默认时保护模式的不能delete、update操作使用SET SQL_SAFE_UPDATES = 0;修改;
先写这么多,