2-17作業 資料庫和shell綜合練習

來源:互聯網
上載者:User

標籤:

1、 使用shell把“12306使用者名稱和密碼庫-不要使用記事本開啟會卡死-解壓後可使用word或ultraedit開啟.rar”中的所有記錄成生sql語句,然後把sql匯入資料庫,成一個uPwd_12306表。欄位自己定義。
擴充:請分析一下“12306使用者名稱和密碼庫”中密碼的形成特點並總結。
2、複製出“12306使用者名稱和密碼庫-不要使用記事本開啟會卡死-解壓後可使用word或ultraedit開啟.rar”所有郵箱和密碼欄位,使用u_id,郵箱,密碼欄位建立一個獨立的表uPwd。對uPwd表建立索引,方便後期自己後期暴力破解帳號時,尋找使用者名稱和密碼
3、查看uPwd_12306表中是否有自己的姓名的記錄
4、尋找出uPwd_12306表中所有90後記錄並成生視圖uPwd_90。(出生年>=1990)

1.先將檔案copy過來

解決中文亂碼問題:

[[email protected] ~]# find / -name vimrc
/etc/vimrc

[[email protected] ~]# vim /etc/vimrc 

set fileencodings=utf-8,gb2312,gbk,gb18030

set termencoding=utf-8

set fileformats=unix

set encoding=prc

寫指令碼

[[email protected] ~]# vim make_12306_table.sh

#!/bin/bash#made by ygy 2016-10 #translate Convert a newline symbol,# Write SQL sentences such as insert into table_name values(‘a‘,‘b‘);file=/home/yy/#convert \r to ‘‘sed -i ‘s/\r//‘ "$file"12306.txtmysql -e ‘create database if not exists 12306_data;‘ -usystem -p123456echo ‘DROP TABLE IF EXISTS uPwd_12306;‘>"$file"12306_mid.sqlecho "CREATE TABLE uPwd_12306 (      uid    int primary key auto_increment,      uname  varchar(40)  not null default ‘‘,      paw   varchar(25) not null DEFAULT ‘‘,      realname  varchar(30)  not null DEFAULT ‘‘,      gmsfhm   varchar(18) not null DEFAULT ‘‘,      other   varchar(25) not null DEFAULT ‘‘,      tel     varchar(11)  not null DEFAULT ‘‘,      email    varchar(40) not null  DEFAULT ‘‘      );">>"$file"12306_mid.sqlsed ‘s/----/‘\‘,\‘‘/g‘ "$file"12306.txt |awk ‘{print "insert into uPwd_12306(uname,paw,realname,gmsfhm,other,tel,email) values(‘\‘‘"$0"‘\‘‘);"}‘>>"$file"12306_mid.sqlmysql -usystem -p123456 12306_data < "$file"12306_mid.sql
View Code

 運行報錯

上網查了下原因,因為資料太多。要修改一下下面的配置,對應linux是my.cnf

 

重啟mysql

[[email protected] ~]# service mysqld restart

再次運行

[[email protected] ~]# ./make_12306_table.sh

ERROR 1064 (42000) at line 2279: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘210504197710140512‘,‘licheng1977‘,‘13942443523‘,‘[email protected]‘);

報錯,我查看一下中間檔案

發現這條資料是中文是亂碼。

明明已經轉了編碼,為什麼有的字是亂碼。

 

經過研究,原先上傳的12306.txt的編碼是utf8,使用notepad++開啟,中文是亂碼,

將格式轉成ansi後,中文能正確顯示出來,因此,將顯示正確的內容剪下,然後調整編碼格式為utf8,再把剪下的內容粘貼上去。

 

然後再把這個轉碼後的12306.txt上傳到linux。

這個方法可行,嘗試的其他方法都沒有行得通。

再次運行

[[email protected] ~]# ./make_12306_table.sh 

經過等待後,進入mysql驗證一下。

 

驗證成功!

2.

mysql> create table if not exists uPwd  ( uid int(10) primary key, upwd varchar(25), email varchar(40));

 

匯入資料

mysql> insert into uPwd ( uid, upwd, email)select uid,paw,email from uPwd_12306;

Query OK, 131653 rows affected (0.52 sec)

Records: 131653  Duplicates: 0  Warnings: 0

3. mysql> select * from uPwd where email like ‘4145965‘;

4. mysql> create view uPwd_90 as select * from uPwd_12306 where substring(gmsfhm,7,4)>=1990;

Query OK, 0 rows affected (0.00 sec)

 

2-17作業 資料庫和shell綜合練習

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.