ubuntu普通用户安装mysql并导入sql文件数据
ubuntu version: 16.04.7
mysql version: 5.7.32
目的:服务器安装实施记录,下次有需要备查。
1. 安装mysql
1.1. 安装mysqlServer
# 更新软件源
sudo apt-get update
# 安装mysql
sudo apt-get install mysql-server
安装过程中会出现图形化界面设置mysql的root用户密码并确认。(如“123465”)
1.2. 安装依赖包
sudo apt-get install libmysqlclient-dev
1.3. 修改配置文件(允许远程)
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 注释下面一行:
bind-address = 127.0.0.1
# 或改为如下:
bind-address = 0.0.0.0
1.4. 重启mysql服务
/etc/init.d/mysql restart
# 查看3306端口服务(mysql服务默认端口)
netstat -nlp | grep 3306
2. 创建数据库及用户
2.1. 登录mysql
mysql -uroot -p123456
show databases;
# 创建数据库
create database test2020;
# 创建用户myuser,并允许远程访问数据库test2020的所有内容,同时设置密码
GRANT ALL PRIVILEGES ON test2020.* TO myuser@"%" IDENTIFIED BY "myuser123";
3. 导入.sql数据文件
mysql -umyuser -pmyuser123
# 查看数据库
show databases;
# 使用数据库(选择数据库以后才能导入数据)
use test2020;
# 导入数据
source filepath.sql;
# 查看数据
show tables;
4. 快速导入.sql数据文件
# 使用root用户,给myuser用户使用file权限
GRANT FILE ON *.* TO 'myuser'@'%';
# 查看secure_file_priv,默认none不开启,或者有限定的路径
show global variables like '%secure_file_priv%';
# 修改/etc/mysql/my.cnf文件
# 添加两行:(取消路径限定)
[mysqld]
secure_file_priv=''
# 重启mysql
service mysql restart
# 导入数据[数据在客户端]
load data local file 'filename.sql' into table tablename character set utf8;
# 导入数据[数据在服务器]
load data file 'filename.sql' into table tablename character set utf8;
5. 解决sql数据文件格式问题
5.1. tab分隔
# data1.sql数据文件内容
234 abc d test
44 absc b test2
数据以tab分隔,可以直接使用load data local file 'data1.sql' into table tablename;
5.2. 逗号分隔
# data2.sql数据文件内容
234,abc,d,test
44,absc,b,test2
数据以逗号分隔,可以直接使用load data local file 'data2.sql' into table tablename fields terminated by ",";
5.3. 字段有引号
# data3.sql数据文件内容
"234" "abc" "d" "test"
"44" "absc" "b" "test2"
数据字段有引号,可以直接使用load data local file 'data3.sql' into table tablename fields enclosed by '"';
5.4. insert命令
# data4.sql数据文件内容
INSERT INTO `table1` VALUES (123, 12344, 0, 0, 'abc');
INSERT INTO `table1` VALUES (649, 4511, 0, 0, 'abcd');
可以先将文件做一下转换,生成新文件data4_new.sql
:
cut -d '(' -f 2 data4.sql | cut -d ')' -f 1 |sed "s/'//g" > data4_new.sql
# data4_new.sql数据文件内容
123, 12344, 0, 0, abc
649, 4511, 0, 0, abcd
然后再导入:load data local file 'data4_new.sql' into table tablename fields terminated by ", ";
20210719更新
6. 批量导入多个.sql文件
创建load_all_file.sql
文件,在文件中添加所有需要导入的.sql
文件名,如下:
source /filepath/file1.sql;
source /filepath/file2.sql;
source /filepath/file3.sql;
...
在mysql命令行,直接执行source load_all_file.sql;
即可。