Mysql在linux/cmd下操作基本筆記
阿新 • • 發佈:2018-12-12
show databases; 檢視所有表
use XXX; 常看單獨庫
show tables 顯示錶
select *from 表名
show databases; 顯示資料庫
show tables; 顯示資料表
describe 表名; 顯示錶結構
建立庫:create database 庫名;
刪除庫:drop database 庫名;
連線:
mysql -h主機地址 -u使用者名稱 -p使用者密碼
(注:u與root可以不用加空格,其它也一樣)
斷開:
exit (回車)
建立授權:
grant select on 資料庫.* to 使用者名稱@登入主機 identified by \"密碼\"
修改密碼:
mysqladmin -u使用者名稱 -p舊密碼 password 新密碼
刪除授權:
revoke select,insert,update,delete om *.* [email protected];
建立表:create table 表名 (欄位設定列表);
刪除表:drop table 表名;
修改表:alter table t1 rename t2
查詢表:select * from 表名;
清空表:delete from 表名;
備份表:
mysqlbinmysqldump -h(ip) -uroot -p(password) databasenametablename > tablename.sql
恢復表:
mysqlbinmysql -h(ip) -uroot -p(password) databasenametablename < tablename.sql
(操作前先把原來表刪除)
增加列:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADDINDEX (c);
修改列:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b cCHAR(20);
刪除列:
ALTER TABLE t2 DROP COLUMN c;
備份資料庫:
mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename> database.sql
恢復資料庫:
mysql\bin\mysql -h(ip) -uroot -p(password) databasename< database.sql
複製資料庫:
mysql\bin\mysqldump --all-databases >all-databases.sql
修復資料庫:
mysqlcheck -A -o -uroot -p54safer
文字資料匯入:
load data local infile \"檔名\" into table 表名;
資料匯入匯出:
mysql\bin\mysqlimport database tables.txt
第一招、mysql服務的啟動和停止
net stop mysql
net start mysql
第二招、登陸mysql
語法如下: mysql -u使用者名稱-p使用者密碼
鍵入命令mysql -uroot -p,回車後提示你輸入密碼,輸入12345,然後回車即可進入到mysql中了,mysql的提示符是:
mysql>
注意,如果是連線到另外的機器上,則需要加入一個引數-h機器IP
第三招、增加新使用者
格式:grant 許可權 on 資料庫.* to 使用者名稱@登入主機 identified by "密碼"
如,增加一個使用者user1密碼為password1,讓其可以在本機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入mysql,然後鍵入以下命令:
grant select,insert,update,delete on *.* [email protected] Identified by "password1";
如果希望該使用者能夠在任何機器上登陸mysql,則將localhost改為"%"。
如果你不想user1有密碼,可以再打一個命令將密碼去掉。
grant select,insert,update,delete on mydb.* [email protected] identified by"";
第四招: 操作資料庫
登入到mysql中,然後在mysql的提示符下執行下列命令,每個命令以分號結束。
1、 顯示資料庫列表。
show databases;
預設有兩個資料庫:mysql和test。mysql庫存放著mysql的系統和使用者許可權資訊,我們改密碼和新增使用者,實際上就是對這個庫進行操作。
2、 顯示庫中的資料表:
use mysql;
show tables;
3、 顯示資料表的結構:
describe 表名;
4、 建庫與刪庫:
create database 庫名;
drop database 庫名;
5、 建表:
use 庫名;
create table 表名(欄位列表);
drop table 表名;
6、 清空表中記錄:
delete from 表名;
7、 顯示錶中的記錄:
select * from 表名;
第五招、匯出和匯入資料
1. 匯出資料:
mysqldump --opt test > mysql.test
即將資料庫test資料庫匯出到mysql.test檔案,後者是一個文字檔案
如:mysqldump -u root -p123456 --databases dbname >mysql.dbname
就是把資料庫dbname匯出到檔案mysql.dbname中。
2. 匯入資料:
mysqlimport -u root -p123456 < mysql.dbname。
不用解釋了吧。
3. 將文字資料匯入資料庫:
文字資料的欄位資料之間用tab鍵隔開。
use test;
load data local infile "檔名" into table 表名;
1:使用SHOW語句找出在伺服器上當前存在什麼資料庫:
mysql> SHOW DATABASES;
2:2、建立一個數據庫MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:選擇你所建立的資料庫
mysql> USE MYSQLDATA; (按回車鍵出現Database changed時說明操作成功!)
4:檢視現在的資料庫中存在什麼表
mysql> SHOW TABLES;
5:建立一個數據庫表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sexCHAR(1));
6:顯示錶的結構:
mysql> DESCRIBE MYTABLE;
7:往表中加入記錄
mysql> insert into MYTABLE values ("hyq","M");
8:用文字方式將資料裝入資料庫表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTOTABLE MYTABLE;
9:匯入.sql檔案命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:刪除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中資料
mysql>update MYTABLE set sex="f" where name='hyq';13:備份資料庫mysqldump -u root庫名>xxx.data14:
例2:連線到遠端主機上的MYSQL
假設遠端主機的IP為:110.110.110.110,使用者名稱為root,密碼為abcd123。則鍵入以下命令:
mysql-h110.110.110.110 -uroot -pabcd123
(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令:exit
(一) 連線MYSQL:
格式: mysql -h主機地址 -u使用者名稱-p使用者密碼
1、例1:連線到本機上的MYSQL
首先在開啟DOS視窗,然後進入mysql安裝目錄下的bin目錄下,例如: D:\mysql\bin,再鍵入命令mysql -uroot-p,回車後提示你輸密碼,如果剛安裝好MYSQL,超級使用者root是沒有密碼的,故直接回車即可進入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:連線到遠端主機上的MYSQL
假設遠端主機的IP為:10.0.0.1,使用者名稱為root,密碼為123。則鍵入以下命令:
mysql -h10.0.0.1 -uroot-p123
(注:u與root可以不用加空格,其它也一樣)
3、退出MYSQL命令
exit (回車)
(二) 修改密碼:
格式:mysqladmin -u使用者名稱 -p舊密碼password 新密碼
1、例1:給root加個密碼123。首先在DOS下進入目錄C:\mysql\bin,然後鍵入以下命令:
mysqladmin -uroot -password123
注:因為開始時root沒有密碼,所以-p舊密碼一項就可以省略了。
2、例2:再將root的密碼改為456
mysqladmin -uroot -pab12password 456
(三) 增加新使用者:(注意:和上面不同,下面的因為是MYSQL環境中的命令,所以後面都帶一個分號作為命令結束符)
格式:grant select on 資料庫.* to使用者名稱@登入主機 identified by "密碼"
例1、增加一個使用者test1密碼為abc,讓他可以在任何主機上登入,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root使用者連入MYSQL,然後鍵入以下命令:
grantselect,insert,update,delete on *.* to [email protected]"%" Identified by"abc";
但例1增加的使用者是十分危險的,你想如某個人知道test1的密碼,那麼他就可以在internet上的任何一臺電腦上登入你的mysql資料庫並對你的資料可以為所欲為了,解決辦法見例2。
例2、增加一個使用者test2密碼為abc,讓他只可以在localhost上登入,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地主機,即MYSQL資料庫所在的那臺主機),這樣使用者即使用知道test2的密碼,他也無法從internet上直接訪問資料庫,只能通過MYSQL主機上的web頁來訪問了。
grantselect,insert,update,delete on mydb.* to [email protected] identifiedby "abc";
如果你不想test2有密碼,可以再打一個命令將密碼消掉。
grantselect,insert,update,delete on mydb.* to [email protected] identifiedby "";
(四) 顯示命令
1、顯示資料庫列表:
show databases;
剛開始時才兩個資料庫:mysql和test。mysql庫很重要它裡面有MYSQL的系統資訊,我們改密碼和新增使用者,實際上就是用這個庫進行操作。
2、顯示庫中的資料表:
use mysql; //開啟庫
show tables;
3、顯示資料表的結構:
describe 表名;
4、建庫:
create database 庫名;
5、建表:
use 庫名;
create table 表名(欄位設定列表);
6、刪庫和刪表:
drop database 庫名;
drop table 表名;
7、將表中記錄清空:
delete from 表名;
8、顯示錶中的記錄:
select * from 表名;
MySQL匯入匯出命令
1.匯出整個資料庫
mysqldump -u 使用者名稱 -p 資料庫名 > 匯出的檔名
mysqldump -u wcnc -p smgp_apps_wcnc >wcnc.sql
2.匯出一個表
mysqldump -u 使用者名稱 -p 資料庫名 表名> 匯出的檔名
mysqldump -u wcnc -p smgp_apps_wcnc users>wcnc_users.sql
3.匯出一個數據庫結構
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc>d:wcnc_db.sql
-d 沒有資料 --add-drop-table 在每個create語句之前增加一個drop table
4.匯入資料庫
常用source 命令
進入mysql資料庫控制檯,
如mysql -u root -p
mysql>use 資料庫
然後使用source命令,後面引數為指令碼檔案(如這裡用到的.sql)
mysql>source d:wcnc_db.sql (注:如果寫成sourced:\wcnc_db.sql,就會報語法
使用load data 批量匯入資料,這種做法可以瞬間匯入資料,用處非常大!
複製程式碼 程式碼如下:
LOAD DATA [LOW_PRIORITY | CONCURRENT] [LOCAL] INFILE 'file_name.txt'
[REPLACE | IGNORE]
INTO TABLE tbl_name
[FIELDS 欄位操作,設定每個欄位的分隔符
[TERMINATED BY 'string']
[[OPTIONALLY] ENCLOSED BY 'char']
[ESCAPED BY 'char' ]
]
[LINES 行操作,從某一個字元開始,到某個字元
[STARTING BY 'string']
[TERMINATED BY 'string']
]
[IGNORE number LINES] 行操作,忽略某行
[(col_name_or_user_var,...)] 欄位操作,寫入的欄位與資料對應
[SET col_name = expr,...)]
示例:load data infile '/test/test.file' intotable 'test' fields terminated by "\t" (fieldsOne,fieldsTwo);
意思是, 載入/test/test.file到表test中,使用\t分割欄位,寫入fieldsOne和fieldsTwo中,預設以換行符作為一個行分割!