標籤:
1. 串連資料庫伺服器
$ ./mysql -h host_name -u user_name -p
-h host_name(--host=host_name),串連的資料庫主機名稱,如果在本地主機上則可省略。
-u user_name(--user=user_name),資料庫使用者名稱,在unix系統上,如果系統的登入名稱與資料使用者名稱一樣,則可省略。在windows系統中,可通過設定環境變數USER來給出資料庫使用者名稱,如set USER=username。
-p(--password),提供資料庫使用者密碼,有該選項mysql就會提示你輸入密碼。輸入的密碼以星號顯示,以確保安全。也可直接在-p後寫上密碼(-p和密碼間不能有空格),但這不安全,不推薦。
串連成功後,mysql資料庫伺服器會顯示一些歡迎資訊。接著就可用mysql>use database_name命令開啟指定的資料庫。
| |
|
| $ ./mysql -h host_name -u user_name -p database_name命令可直接開啟指定資料庫。 |
2. 更新使用者密碼
mysql>update user set password=passowrd(‘your passowrd‘) where host=‘%‘;
重新整理使用權限設定:mysql>flush privileges;
3. MySQL讀取設定檔的順序
my.cnf是MySQL資料庫的設定檔,它存在多個地方,在/etc目錄,資料目錄和使用者主目錄都有。放在不同位置,裡面的選項有不同的作用範圍,下面是MySQL讀取設定檔的順序和作用。
mysql 讀取設定檔的順序: /etc/my.cnf Global options. DATADIR/my.cnf Server-specific options. defaults-extra-file The file specified with the --defaults-extra-file option. ~/.my.cnf User-specific options.
4. 重設定MySQL管理員密碼的方法
有時我們會因為設定原因或時間長了忘記了資料庫管理員的密碼,使得我們被關在MySQL伺服器外。MySQL伺服器提供了一種方法可使我們在伺服器上重設密碼。在windows和linux/unix平台上操作稍有不同,下面分別介紹:
Linux/Unix平台下:
用 % kill -TERM PID關閉伺服器,用-TERM資訊可使伺服器在關閉前把記憶體中的資料寫入磁碟。如果伺服器沒有響應,我們可用% kill -9 PID來強制移除進程,但不建議這樣做。這時記憶體中的資料不會寫入磁碟,造成資料不完整。如果你是用mysql_safe指令碼啟動MySQL伺服器的,這個指令碼會監控伺服器的運行情況並在它被終止時重啟伺服器,所以如需關閉伺服器,要先終止該進程,然後再真正終止mysqld進程。
使用--skip-grant-tables參數啟動MySQL Server,這時MySQL伺服器將不使用許可權表對串連操作進行驗證。你就可在不提供root密碼的情況下串連上伺服器,並獲得root的許可權。
% mysqld_safe --skip-grant-tables &
用以下命令登入伺服器,並重設密碼:
% mysql -u root #不用密碼就可串連到伺服器 mysql> use mysql mysql> set password for ‘root‘@‘localhost‘ = password(‘password‘);
- 關閉伺服器,再用正常方式啟動伺服器。
windows平台下:
用管理員帳號登入伺服器,關閉MySQL資料庫伺服器。
使用--skip-grant-tables參數啟動伺服器:
c:\mysql\bin>mysqld-nt --skip-grant-tables
重新開啟一個console視窗,用mysql命令登入伺服器設定root的新密碼:
c:\mysql\bin>mysql mysql> use mysql mysql> set password for ‘root‘@‘localhost‘ = password(‘password‘);
關閉伺服器,再用正常方式啟動伺服器。
5. NULL值
NULL是空值,代表什麼也沒有。它不能與值進行比較操作和算術操作,也不能和NULL進行比較,因為兩個空值比較是沒有意義的。我們可用“is NULL” 或 “is not NULL”來判斷是不空值。如:
mysql> select * from test where mytest is NULL; mysql> select * from test where mytest is not NULL;
在MySQL3.23以後的版本有一個新的比較操作符“<=>”,它可對NULL值進行相等比較。如:
mysql> select * from test where mytest <=> UNLL; mysql> select * from test where not (mytest <=>);
如果查詢後排序中的資料中包含NULL,則從MySQL4.0.2開始,有NULL值的資料行總是出現在查詢結果的開頭,即使設定的desc參數。4.0.2以前版本,如果設定了asc,則出在查詢結果的開頭,如果設定了desc,則出現在查詢結果的結尾。
6. 使用SQL變數
MySQL3.23.6以後的版本允許通過查詢結果來設定變數,設定好的變數可在以後使用。變數用@name定義,賦值方式用@name:=value。下面是一個在查詢語句中進行賦值和使用變數的例子:
mysql> select @name:=id from test where mytest="test"; mysql> select * from test where [email protected]
7. 改變預設提示符
用mysql登入進資料庫後,MySQL資料的預設提示符是“mysql”,我們可設定它根據使用者開啟的資料庫名而變化,如:
mysql>prompt \d>\_ none>use test test>use mysql mysql>
prompt為設定命令,\d代表當前資料庫,\_代表一個空格。
8. 非最佳化的全資料表DELETE操作
為了清空資料表,又需知道刪除的行數和保持AUTO_INCREMENT序列的值,需用以下的刪除語句:
# delete from table_name where 1;
9. MySQL交易處理樣本
MYSQL進階特性 -- 交易處理下面以兩個銀行賬戶之間的轉賬為例子進行示範。要使用MySQL中的交易處理,首先需要建立使用事務表類型(如BDB = Berkeley DB或InnoDB)的表。
CREATE TABLE account ( account_id BIGINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, balance DOUBLE ) TYPE = InnoDB; 要在事務表上使用交易處理,必須要首先關閉自動認可: SET AUTOCOMMIT = 0; 交易處理以BEGIN命令開始: BEGIN; 現在mysql客戶處在於伺服器相關的事物上下文中。任何對事務表所做的改變在提交之前不會成為永久性的改變。 UPDATE ACCOUNT SET balance = 50.25 WHERE account_id = 1; UPDATE ACCOUNT SET balance = 100.25 WHERE account_id = 2; 在做出所有的改變之後,使用COMMIT命令完成交易處理: COMMIT; 當然,交易處理的真正優點是在執行第二條語句發生錯誤時體現出來的,若在提交前終止整個事務,可以進行復原操作: ROLLBACK; 下面是另一個例子,通過MYSQL直接進行數學運算: SELECT @first := balance FROM account WHERE account_id = 1; SELECT @second := balance FROM account WHERE account_id = 2; UPDATE account SET balance = @first - 25.00 WHERE account_id = 1; UPDATE account SET balance = @second + 25.00 WHERE account_id = 2; 除了COMMIT命令外,下列命令也會自動結束當前事務: ALTER TABLE BEGIN CREATE INDEX DROP DATABASE DROP TABLE LOCK TABLES RENAME TABLE TRUNCATE UNLOCK TABLES
本文由網頁教學網(http://www.webjx.com)整理髮布!轉載請註明出處,謝謝!
MySQL教程:資料庫具體操作