教會你完整弄定MySQL數據庫 輕松八句話。本站提示廣大學習愛好者:(教會你完整弄定MySQL數據庫 輕松八句話)文章只能為提供參考,不一定能成為您想要的結果。以下是教會你完整弄定MySQL數據庫 輕松八句話正文
1、銜接MYSQL 格局:
mysql -h主機地址
-u用戶名
-p用戶暗碼
1、例1:銜接到本機上的MySQL:
起首在翻開DOS窗口,然落後入目次 mysqlbin,再鍵入敕令mysql -uroot -p,回車後提醒你輸暗碼,假如剛裝置好MYSQL,超等用戶root是沒有暗碼的,故直接回車便可進入到MYSQL中了,MYSQL的提醒符是:mysql>。
2、例2:銜接到長途主機上的MYSQL。假定長途主機的IP為:110.110.110.110,用戶名為root,暗碼為abcd123。則鍵入以下敕令:mysql -h110.110.110.110 -uroot -pabcd123。
3、加入MYSQL敕令:exit (回車)。
2、修正暗碼
格局:mysqladmin -u用戶名 -p舊暗碼 password 新暗碼
1、例1:給root加個暗碼ab12。起首在DOS下進入目次mysqlbin,然後鍵入以下敕令:
mysqladmin -uroot -password ab12
注:由於開端時root沒有暗碼,所以-p舊暗碼一項便可以省略了。
2、例2:再將root的暗碼改成djg345:
mysqladmin -uroot -pab12 password djg345
3、增長新用戶
(留意:和下面分歧,上面的由於是MYSQL情況中的敕令,所今後面都帶一個分號作為敕令停止符)
格局:
grant select on 數據庫.*
to 用戶名@登錄主機 identified by "暗碼"
例1、增長一個用戶test1暗碼為abc,讓他可以在任何主機上登錄,並對一切數據庫有查詢、拔出、修正、刪除的權限。起首用以root用戶連入MYSQL,然後鍵入以下敕令:
grant select,insert,update,
delete on *.* to test1@"%" Identified by "abc";
但例1增長的用戶是非常風險的,你想如某小我曉得test1的暗碼,那末他便可以在internet上的任何一台盤算機上登錄你的mysql數據庫並對你的材料可認為所欲為了,處理方法見例2。
例2、增長一個用戶test2暗碼為abc,讓他只可以在localhost上登錄,並可以對數據庫mydb停止查詢、拔出、修正、刪除的操作(localhost指當地主機,即MYSQL數據庫地點的那台主機),如許用戶即便用曉得test2的暗碼,他也沒法從internet上直接拜訪數據庫,只能經由過程MYSQL主機上的web頁來拜訪了。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
假如你不想test2有暗碼,可以再打一個敕令將暗碼消失落。
grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
留意:你必需起首登錄到MYSQL中,以下操作都是在MYSQL的提醒符下停止的,並且每一個敕令以分號停止。
4、操作技能
1、假如你打敕令時,回車後發明忘卻加分號,你不必重打一遍敕令,只需打個分號回車便可以了。也就是說你可以把一個完全的敕令分紅幾行來打,完後用分號作停止標記就OK。
2、你可使用光標高低鍵調出之前的敕令。但之前我用過的一個MYSQL舊版本不支撐。我如今用的是:mysql-3.23.27-beta-win。
5、顯示敕令
1、顯示數據庫列表:show databases;
剛開端時才兩個數據庫:mysql和test。mysql庫很主要它外面有MYSQL的體系信息,我們改暗碼和新增用戶,現實上就是用這個庫停止操作。
2、顯示庫中的材料表:
use mysql;
//翻開庫,學過FOXBASE的必定不會生疏吧
show tables;
3、顯示材料表的構造:describe 表名;
4、建庫:create database 庫名;
5、建表:
use 庫名;
create table 表名 (字段設定列表);
6、刪庫和刪表:
drop database 庫名;
drop table 表名;
7、將表中記載清空:delete from 表名;
8、顯示表中的記載:select * from 表名;
6、一個建庫和建表和拔出數據的實例 drop database if exists school; //假如存在SCHOOL則刪除
create database school;
//樹立庫SCHOOL
use school;
//翻開庫SCHOOL
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 valuess
(,glchengang,深圳一中,1976-10-10);
insert into teacher valuess
(,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狀況進入目次mysqlbin,然後鍵入以下敕令:
mysql -uroot -p暗碼
假如勝利,空出一行無任何顯示;若有毛病,會有提醒。(以上敕令曾經調試,你只需將//的正文去失落便可應用)。
7、將文本材料轉到數據庫中
1、文本材料應相符的格局:字段材料之間用tab鍵離隔,null值用n來取代.
例:
3 rose 深圳二中 1976-10-10
4 mike 深圳一中 1975-12-23
2、數據傳入敕令 load data local infile “文件名” into table 表名;
留意:你最好將文件復制到mysqlbin目次下,而且要先用use敕令打表地點的庫 。
8、備份數據庫:
(敕令在DOS的mysqlbin目次下履行)
mysqldump --opt school>school.bbb
正文:將數據庫school備份到school.bbb文件,school.bbb是一個文本文件,文件名任取,翻開看看你會有新發明。
=======================================================
MySQL辦事器啟動敕令以下:net start mysql
MySQL辦事器停滯敕令以下:net stop mysql
MySQL辦事器的銜接敕令以下:
方法一:mysql -h 主機名 -u 用戶名 -p 用戶暗碼
方法二:mysql --host=主機名 --user=用戶名 --password=用戶暗碼
默許的主機是:localhost
=======================================================
1、數據備份捷徑
由於這個辦法沒有獲得官樸直式文檔的驗證,我們暫稱為實驗吧。
目標:備份hostA主機中一個mysql數據庫TestA,並恢復到到hostB機中
實驗情況:
操作體系:WinNT4.0,Mysql3.22.34,phpMyAdmin 2.1.0
在hostA中裝置mysql數據庫並樹立TestA數據庫
hostB機裝置mysql數據庫,沒有TestA數據庫
辦法步調:
啟動phpMyAdmin觀察HostA和HostB中的數據庫列表,在HostB中沒有TestA數據庫
找到HostA中mysql的裝置目次,並找到數據庫目次data
在我的實驗情況中,這個目次是
C:mysqldata
找到對應數據庫稱號的子目次
C:mysqldataTestA
粘貼拷貝到HostB的Data目次下,是HostA同HostB Mysql數據目次下的文件雷同
刷新HostB的phpMyAdmin觀察一下數據庫列表,我們看到TestA曾經湧現,而且作查詢修正等操作都正常,備份恢復恢復勝利
實驗結論:Mysql的數據庫可以經由過程文件情勢保留,備份,恢復只需將響應文件目次恢復便可,無需應用其它對象備份。
2、正軌的辦法(官方建議):
導出要用到MySQL的mysqldump對象,根本用法是:
mysqldump [OPTIONS] database [tables]
假如你不給定任何表,全部數據庫將被導出。
經由過程履行mysqldump --help,你能獲得你mysqldump的版本支撐的選項表。
留意,假如你運轉mysqldump沒有--quick或--opt選項,mysqldump將在導出成果前裝載全部成果集到內存中,假如你正在導出一個年夜的數據庫,這將能夠是一個成績。
mysqldump支撐以下選項:
--add-locks
在每一個表導出之前增長LOCK TABLES而且以後UNLOCK TABLE。(為了使得更快地拔出到MySQL)。
--add-drop-table
在每一個create語句之前增長一個drop table。
--allow-keywords
許可創立是症結詞的列名字。這由在列名後面加表名的辦法做到。
-c, --complete-insert
應用完全的insert語句(用列名字)。
-C, --compress
假如客戶和辦事器均支撐緊縮,緊縮二者間一切的信息。
--delayed
用INSERT DELAYED敕令拔出行。
-e, --extended-insert
應用全新多行INSERT語法。(給出更壓縮而且更快的拔出語句)
-#, --debug[=option_string]
跟蹤法式的應用(為了調試)。
--help
顯示一條贊助新聞而且加入。
--fields-terminated-by=...
--fields-enclosed-by=...
--fields-optionally-enclosed-by=...
--fields-escaped-by=...
--fields-terminated-by=...
這些選擇與-T選擇一路應用,而且有響應的LOAD DATA INFILE子句雷同的寄義。
LOAD DATA INFILE語法。
-F, --flush-logs
在開端導出前,洗失落在MySQL辦事器中的日記文件。
-f, --force,
即便我們在一個表導出時代獲得一個SQL毛病,持續。
-h, --host=..
從定名的主機上的MySQL辦事器導出數據。缺省主機是localhost。
-l, --lock-tables.
為開端導出鎖定一切表。
-t, --no-create-info
不寫入表創立信息(CREATE TABLE語句)
-d, --no-data
不寫入表的任何行信息。假如你只想獲得一個表的構造的導出,這是很有效的!
--opt
同--quick --add-drop-table --add-locks --extended-insert --lock-tables。
應當給你為讀入一個MySQL辦事器的盡量最快的導出。
-pyour_pass, --password[=your_pass]
與辦事器銜接時應用的口令。假如你不指定“=your_pass”部門,mysqldump須要來自終真個口令。
-P port_num, --port=port_num
與一台主機銜接時應用的TCP/IP端標語。(這用於銜接到localhost之外的主機,由於它應用 Unix套接字。)
-q, --quick
不緩沖查詢,直接導出至stdout;應用mysql_use_result()做它。
-S /path/to/socket, --socket=/path/to/socket
與localhost銜接時(它是缺省主機)應用的套接字文件。
-T, --tab=path-to-some-directory
關於每一個給定的表,創立一個table_name.sql文件,它包括SQL CREATE 敕令,和一個table_name.txt文件,它包括數據。 留意:這只要在mysqldump運轉在mysqld守護過程運轉的統一台機械上的時刻才任務。.txt文件的格局依據--fields-xxx和--lines--xxx選項來定。
-u user_name, --user=user_name
與辦事器銜接時,MySQL應用的用戶名。缺省值是你的Unix登錄名。
-O var=option, --set-variable var=option
設置一個變量的值。能夠的變量被列鄙人面。
-v, --verbose
冗雜形式。打印出法式所做的更多的信息。
-V, --version
打印版本信息而且加入。
-w, --where='where-condition'
只導出被選擇了的記載;留意引號是強迫的!
"--where=user='jimf'" "-wuserid>1" "-wuserid<1"
最多見的mysqldump應用能夠制造全部數據庫的一個備份:
mysqldump --opt database > backup-file.sql
然則它對用來自於一個數據庫的信息充分別的一個MySQL數據庫也是有效的:
mysqldump --opt database | mysql --host=remote-ho