㈠ MySQL資料庫備份和還原的常用命令
1.備份MySQL資料庫的命令
mysqlmp-hhostname-uusername-ppassworddatabasename>backupfile.sql
2.備份MySQL資料庫為帶刪除表的格式,能夠讓該備份覆蓋已有資料庫而不需要手動刪除原有資料庫。
mysqlmp-_add-drop-table-uusername-ppassworddatabasename>backupfile.sql
3.直接將MySQL資料庫壓縮備份
mysqlmp-hhostname-uusername-ppassworddatabasename|gzip>backupfile.sql.gz
4.備份MySQL資料庫某個(些)表
mysqlmp-hhostname-uusername-ppassworddatabasenamespecific_table1specific_table2>backupfile.sql
5.同時備份多個MySQL資料庫
mysqlmp-hhostname-uusername-ppassword_>multibackupfile.sql
6.僅僅備份灶此資料庫結構
mysqlmp_no-data_>structurebackupfile.sql
7.備份伺服器上所有資料庫
mysqlmp_all-databases>allbackupfile.sql
8.還原MySQL資料庫的命令
mysql-hhostname-uusername-ppassworddatabasename<backupfile.sql
9.還隱碰迅原壓縮的MySQL資料庫
gunzip<backupfile.sql.gz|mysql-uusername-ppassworddatabasename
10.將資料庫轉移到新服吵缺務器
mysqlmp-uusername-ppassworddatabasename|mysql_host=*.*.*.*-Cdatabasename
㈡ 那有比較全的MySql命令啊
1. 連接mysql:
mysqlbinmysql -h主機地址 -u 用戶名 -p 用戶密碼
2.退出mysql:exit
3. 修改密碼:
mysqlbinmysqladmin -uroot -p(oldpassword) password newpassword
4.增加用戶:
添加一個用戶test1 密碼為ABC;讓他可以在任何主機上登錄,並對所有資料庫有查詢、插入、修改、刪除的許可權。首先用以root用戶連入
mysql,然後鍵入以下命令:grant select,insert,update,delete on *.* to test1@"%" Identified
by "abc";
增加一個用戶test2密碼為abc,讓其只可以在localhost上登錄,並可以對資料庫mydb進行查詢、插入、修改、刪除的操作(localhost指本地
主機,即mysql資料庫所在的那台主機),這樣用戶即使用知道test2的密碼,也無法從internet上直接訪問資料庫,只能通過mysql主機上的web頁
來訪問了。grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
增加一個可以從任何地方連接伺服器的一個完全的超級用戶
grant all privileges on *.* to test3@"%" identified by 'password' with grant option;
5.刪除授權
revoke select,insert,update,delete om *.* from test2@localhost ;
--------------------------------------------------------
6.顯示資料庫
show databases;
7.顯示資料庫中的表
use dataname;
show tables;
8.顯示表的結構
describe tablesname;
9.建庫
create database 庫名;
10.建表
use dataname;
create table teacher //建立表TEACHER
(
id int(3) auto_increment not null primary key,
name char(10) not null,
address varchar(50) default '深圳',
year date
); //建表結束
//以下為插入欄位
insert into teacher values('','glchengang','深圳一中','1976-10-10');
insert into teacher values('','jack','深圳一中','1975-12-23');
註:在建表中
(1) 將ID設為長度為3的數字欄位:int(3),並讓它每個記錄自動加一: auto_increment,
並不能為空:not null,而且讓它成為主欄位primary key
(2) 將NAME設為長度為10的字元欄位
(3) 將ADDRESS設為長度50的字元欄位,而且預設值為深圳。varchar和char有什麼區別
呢,只有等以後的文章再說了。
(4) 將YEAR設為日期欄位。
如果你在mysql提示符鍵入上面的命令也可以,但不方便調試。 你可以將以上命令
原樣寫入一個文本文件中假設為school.sql,然後復制到c:下,並在DOS狀態進入目錄
mysql in,然後鍵入以下命令:
mysql -uroot -p密碼 < c:school.sql
如果成功,空出一行無任何顯示;如有錯誤,會有提示。(以上命令已經調試,你
只要將//的注釋去掉即可使用)。
11.刪除庫和刪除表
drop dataname;
drop tablename;
12.將表中的記錄清空
delete from tablename;
13.顯示表中的記錄
select * from tablename;
14.表重命名
alter table t1 rename t2
---------------------------------------------------------
15. 備份資料庫
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename > database.sql
16. 恢復資料庫
mysqlbinmysql -h(ip) -uroot -p(password) databasename < database.sql
17.復制資料庫
mysqlmp --all-databases > all-databases.sal
18.備份表
mysqlbinmysqlmp -h(ip) -uroot -p(password) databasename tablename > tablename.sql
19.恢復表(操作前先把原來的表刪除)
mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql
----------------------------------------------------------
20.為了改變列a,從INTEGER改為TINYINT NOT NULL(名字一樣),
並且改變列b,從CHAR(10)改為CHAR(20),同時重命名它,從b改為c:
ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
增加一個新TIMESTAMP列,名為d:
ALTER TABLE t2 ADD d TIMESTAMP;
在列d上增加一個索引,並且使列a為主鍵:
ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);
刪除列c:
ALTER TABLE t2 DROP COLUMN c;
增加一個新的AUTO_INCREMENT整數列,命名為c:
ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
注意,我們索引了c,因為AUTO_INCREMENT柱必須被索引,並且另外我們聲明c為NOT NULL,
因為索引了的列不能是NULL
---------------------------------------------------------------
21.數據的導入導出
A。mysqlimport
語法:mysqlbinmysqlimport database tables.txt( 文件名需要與表名相同)
參數:-d or --delete 新數據導入數據表中之前刪除數據數據表中的所有信息;
-f or --force 不管是否遇到錯誤,mysqlimport將強制繼續插入數據;
-i or --ignore mysqlimport跳過或者忽略那些有相同唯一關鍵字的行, 導入文件中的數據將被忽略;
-l or -lock-tables 數據被插入之前鎖住表,這樣就防止了, 你在更新資料庫時,用戶的查詢和更新受到影響;
--fields-enclosed- by= char
指定文本文件中數據的記錄時以什麼括起的, 很多情況下數據以雙引號括起。 默認的情況下數據是沒有被字元括起的。
--fields-terminated- by=char
指定各個數據的值之間的分隔符,在句號分隔的文件中,分隔符是句號。您可以用此選項指定數據之間的分隔符。默認的分隔符是跳格符
(Tab)
--lines-terminated- by=str
此選項指定文本文件中行與行之間數據的分隔字元串 或者字元。 默認的情況下mysqlimport以newline為行分隔符。 您可以選擇用一個字
符串來替代一個單個的字元: 一個新行或者一個回車。
mysqlimport命令常用的選項還有-v 顯示版本(version), -p 提示輸入密碼(password)等。
--------------------------------------------------------------
22.常用插入、修改、刪除語句
插入記錄:insert into teacher values('','glchengang','深圳一中','1976-10-10');
修改記錄:update mytable set single=′y′ where name=′abccs′;
刪除記錄:delete from mytable where name=′abc′;
㈢ 如何用命令行備份mysql下所有資料庫
關鍵字: mysql 還原或者導入資料庫命令:
mysql -u root --password=root
備份資料庫命令:
mysqlmp -u root --password=root --database helloworld >helloworld_backup.sql
其他用法:
1.導出整個資料庫
mysqlmp -u 用戶名 -p 資料庫名 > 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.導出一個表
mysqlmp -u 用戶名 -p 資料庫名表名> 導出的文件名
mysqlmp -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.導出一個資料庫結構
mysqlmp -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
㈣ mysql 命令行你知多少
Usage: mysql [OPTIONS] [database] //命令方式
-?, --help //顯示幫助信息並退出
-I, --help //顯示幫助信息並退出
--auto-rehash //自動補全功能,就像linux裡面,按Tab鍵出提示差不多,下面有例子
-A, --no-auto-rehash //默認狀態是沒有自動補全功能的。-A就是不要自動補全功能
-B, --batch //ysql不使用歷史文件,禁用交互
(Enables --silent)
--character-sets-dir=name //字體集的安裝目錄
--default-character-set=name //設置資料庫的默認字元集
-C, --compress //在客戶端和伺服器端傳遞信息時使用壓縮
-#, --debug[=#] //bug調用功能
-D, --database=name //使用哪個資料庫
--delimiter=name //mysql默認命令結束符是分號,下面有例子
-e, --execute=name //執行mysql的sql語句
-E, --vertical //垂直列印查詢輸出
-f, --force //如果有錯誤跳過去,繼續執行下面的
-G, --named-commands
/*Enable named commands. Named commands mean this program's
internal commands; see mysql> help . When enabled, the
named commands can be used from any line of the query,
otherwise only from the first line, before an enter.
Disable with --disable-named-commands. This option is
disabled by default.*/
-g, --no-named-commands
/*Named commands are disabled. Use \* form only, or use
named commands only in the beginning of a line ending
with a semicolon (;) Since version 10.9 the client now
starts with this option ENABLED by default! Disable with
'-G'. Long format commands still work from the first
line. WARNING: option deprecated; use
--disable-named-commands instead.*/
-i, --ignore-spaces //忽視函數名後面的空格.
--local-infile //啟動/禁用 LOAD DATA LOCAL INFILE.
-b, --no-beep //sql錯誤時,禁止嘟的一聲
-h, --host=name //設置連接的伺服器名或者Ip
-H, --html //以html的方式輸出
-X, --xml //以xml的方式輸出
--line-numbers //顯示錯誤的行號
-L, --skip-line-numbers //忽略錯誤的行號
-n, --unbuffered //每執行一次sql後,刷新緩存
--column-names //查尋時顯示列信息,默認是加上的
-N, --skip-column-names //不顯示列信息
-O, --set-variable=name //設置變數用法是--set-variable=var_name=var_value
--sigint-ignore //忽視SIGINT符號(登錄退出時Control-C的結果)
-o, --one-database //忽視除了為命令行中命名的默認資料庫的語句。可以幫跳過日誌中的其它資料庫的更新。
--pager[=name] //使用分頁器來顯示查詢輸出,這個要在linux可以用more,less等。
--no-pager //不使用分頁器來顯示查詢輸出。
-p, --password[=name] //輸入密碼
-P, --port=# //設置埠
--prompt=name //設置mysql提示符
--protocol=name //使用什麼協議
-q, --quick //不緩存查詢的結果,順序列印每一行。如果輸出被掛起,伺服器會慢下來,mysql不使用歷史文件。
-r, --raw //寫列的值而不轉義轉換。通常結合--batch選項使用。
--reconnect //如果與伺服器之間的連接斷開,自動嘗試重新連接。禁止重新連接,使用--disable-reconnect。
-s, --silent //一行一行輸出,中間有tab分隔
-S, --socket=name //連接伺服器的sockey文件
--ssl //激活ssl連接,不激活--skip-ssl
--ssl-ca=name //CA證書
--ssl-capath=name //CA路徑
--ssl-cert=name //X509 證書
--ssl-cipher=name //SSL cipher to use (implies --ssl).
--ssl-key=name //X509 密鑰名
--ssl-verify-server-cert //連接時審核伺服器的證書
-t, --table //以表格的形勢輸出
--tee=name //將輸出拷貝添加到給定的文件中,禁時用--disable-tee
--no-tee //根--disable-tee功能一樣
-u, --user=name //用戶名
-U, --safe-updates //Only allow UPDATE and DELETE that uses keys.
-U, --i-am-a-mmy //Synonym for option --safe-updates, -U.
-v, --verbose //輸出mysql執行的語句
-V, --version //版本信息
-w, --wait //伺服器down後,等待到重起的時間
--connect_timeout=# //連接前要等待的時間
--max_allowed_packet=# //伺服器接收/發送包的最大長度
--net_buffer_length=# //TCP / IP和套接字通信緩沖區大小。
--select_limit=# //使用--safe-updates時SELECT語句的自動限制
--max_join_size=# //使用--safe-updates時聯接中的行的自動限制
--secure-auth //拒絕用(pre-4.1.1)的方式連接到資料庫
--server-arg=name //Send embedded server this as a parameter.
--show-warnings //顯示警告