這裡蒐索程式師資訊,查找有用的技術資料
當前位置:首頁 » 編程語言 » ubuntu導入sql文件
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

ubuntu導入sql文件

發布時間: 2022-05-10 20:58:18

『壹』 ubuntu中mysql數據導入出錯

從mysql裡面導出.sql的文件,然後將.SQL文件導入到5.1版本,就不會有錯了。

『貳』 怎麼提高mysql執行sql導入速度

linux如下設置內存檔:mount -t ramfs none /ram默認使用內存一半如果內存不夠大,系統有多個硬碟,則把mysql應用程序和data目錄分開到不同硬碟上。2、mysql的表設置為myiasm,比同等條件下的innodb能快20倍以上3、導入完成以後才創建資料庫索引4、導入完成以後根據需要轉換為其他engine,比如innodb5、多條數據插入一個表,可以使用多記錄方式:insert into tablename values('xxx','xxx'),('yyy','yyy')...;6、如果多個mysql執行導入,可以使用delayedinsert delayed into tablename values('sss','ssss');7、大文件sql文件可以用split分成多份再導8、同等條件下,redhat比ubuntu強很多(幾乎肯定)

『叄』 怎麼提高Mysql執行sql導入的速度

1、如果mysql的data數據很少,內存足夠大,可以把data防止到內存檔中。

linux如下設置內存檔:

mount -t ramfs none /ram

默認使用內存一半

如果內存不夠大,系統有多個硬碟,則把mysql應用程序和data目錄分開到不同硬碟上。

2、mysql的表設置為myiasm,比同等條件下的innodb能快20倍以上

3、導入完成以後才創建資料庫索引

4、導入完成以後根據需要轉換為其他engine,比如innodb

5、多條數據插入一個表,可以使用多記錄方式:

insert into tablename values(』xxx』,'xxx』),(』yyy』,'yyy』)…;

6、如果多個mysql執行導入,可以使用delayed

insert delayed into tablename values(』sss』,』ssss』);

7、大文件sql文件可以用split分成多份再導

8、同等條件下,redhat比ubuntu強很多(幾乎肯定)

『肆』 怎麼將本地的.sql文件導入hadoop master

完成sqoop的安裝後,可以這樣測試是否可以連接到mysql(注意:mysql的jar包要放到 SQOOP_HOME/lib 下):

sqoop list-databases --connect jdbc:mysql://192.168.1.109:3306/ --username root --password 19891231

結果如下

即說明sqoop已經可以正常使用了。

下面,要將mysql中的數據導入到hadoop中。

我准備的是一個300萬條數據的身份證數據表:

先啟動hive(使用命令行:hive 即可啟動)

然後使用sqoop導入數據到hive:

sqoop import --connect jdbc:mysql://192.168.1.109:3306/hadoop --username root --password 19891231 --table test_sfz --hive-import

sqoop 會啟動job來完成導入工作。

完成導入用了2分20秒,還是不錯的。

在hive中可以看到剛剛導入的數據表:

我們來一句sql測試一下數據:

select * from test_sfz where id < 10;

可以看到,hive完成這個任務用了將近25秒,確實是挺慢的(在mysql中幾乎是不費時間),但是要考慮到hive是創建了job在hadoop中跑,時間當然多。

接下來,我們會對這些數據進行復雜查詢的測試:

我機子的配置如下:

hadoop 是運行在虛擬機上的偽分布式,虛擬機OS是ubuntu12.04 64位,配置如下:

TEST 1 計算平均年齡

測試數據:300.8 W

1. 計算廣東的平均年齡

mysql:select (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz where address like '廣東%';

用時: 0.877s

hive:select (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz where address like '廣東%';

用時:25.012s

2. 對每個城市的的平均年齡進行從高到低的排序

mysql:select
address, (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge
from test_sfz GROUP BY address order by ageAvge desc;

用時:2.949s

hive:select
address, (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as
ageAvge from test_sfz GROUP BY address order by ageAvge desc;

用時:51.29s

可以看到,在耗時上面,hive的增長速度較mysql慢。

TEST 2

測試數據:1200W

mysql 引擎: MyISAM(為了加快查詢速度)

導入到hive:

1. 計算廣東的平均年齡

mysql:select (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '廣東%';

用時: 5.642s

hive:select (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as ageAvge from test_sfz2 where address like '廣東%';

用時:168.259s

2. 對每個城市的的平均年齡進行從高到低的排序

mysql:select
address, (sum(year(NOW()) - SUBSTRING(borth,1,4))/count(*)) as ageAvge
from test_sfz2 GROUP BY address order by ageAvge desc;

用時:11.964s

hive:select
address, (sum(year('2014-10-01') - SUBSTRING(borth,1,4))/count(*)) as
ageAvge from test_sfz2 GROUP BY address order by ageAvge desc;

用時:311.714s

『伍』 如何在LINUX下建立一個MYSQL資料庫,然後我想把一個SQL資料庫導入進去,求步驟!

首先需要安裝MYSQL數據,不知你的是哪個發行版,就當是常用的吧,一般為
#apt-get install mysql-server mysql-client #for debian ubuntu

#yum install mysql-server mysql-client #for CENTOS RHEL

安裝完畢後進入資料庫
mysql 回車,一般在本機上直接用此命令就可以進入的,從其它機器連接還需要賬號密碼

mysql>source <filename> #把<filename>換成你要導入的資料庫備份SQL文件完整路徑,回車等待
mysql>exit #打完收功,退出MYSQL

『陸』 ubuntu下qt鏈接mysql資料庫問題

1,在.pro文件中修改 QT += sql ,大致如下
TEMPLATE = app
TARGET =
DEPENDPATH += .
INCLUDEPATH += .
QT +=sql

2,在程序中添加資料庫
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
qDebug()<<QString("add database");
//db.setHostName("192.168.1.126");//遠程訪問
db.setHostName("localhost");
db.setDatabaseName("test");

//db.setDataBaseName("");
db.setUserName("root");
db.setPassword("000000");

if (!db.open())
return db.lastError();

『柒』 分別在Linux和Windows下,如何使用MySql命令導入/導出*.sql文件

一般伺服器上沒有分用戶的時候mysql用戶名可以用 "root"得到最高許可權.
Ubuntu下使用MySql命令導入/導出*.sql文件( redhat的mysql命令在: /usr/local/mysql/bin/ 目錄下面 )導出:
1.導出整個資料庫
mysqlmp -u 用戶名 -p密碼 資料庫名 > 導出的文件名
2.導出指定表
mysqlmp -u 用戶名 -p密碼 資料庫名 表名1 表名2 ... > 導出的文件名
3.導出指定條件的記錄
mysqlmp [--host=伺服器] -u 用戶名 -p密碼 資料庫名 表名 -w"條件語句" > 導出的文件名
4.如果帶埠號的話,必須去掉密碼:
mysqlmp [--host=伺服器] [--port=埠號] -u 用戶名 -p 資料庫名 表名 -w"條件語句" [--skip-lock-tables ] > 導出的文件名導入:在提示符下輸入
mysql -u root -p 密碼
進入MYSQL後:
先打開要導入的資料庫
mysql>use test;
然後,設置要導入的數據的編碼(如果MySQL默認編與要導入的數據編碼一致,此步可省略)
mysql>set names 編碼格式(utf8或gbk);
最後,導入數據sql文件
mysql> source c:/test.sql;
Windows下使用MySql命令導入/導出*.sql文件1. 導出資料庫:
D:\mysql\bin> mysql 資料庫名 > 導出的文件名 -u 用戶名 -p密碼
2. 導入資料庫:
D:\mysql\bin> mysql 資料庫名 < 導出的文件名 -u 用戶名 -p密碼