程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL Basis

編輯:關於MYSQL數據庫
 【MySQL常用命令】

  1:使用SHOW語句找出在服務器上當前存在什麼數據庫:

  MySQL> SHOW DATABASES;

  2:創建一個數據庫MySQLDATA

  mysql> CREATE DATABASE MySQLDATA;

  3:選擇你所創建的數據庫

  mysql> USE MySQLDATA; (按回車鍵出現Database changed 時說明操作成功!)

  4:查看現在的數據庫中存在什麼表

  MySQL> SHOW TABLES;

  5:創建一個數據庫表

  MySQL> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(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” INTO TABLE 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’;

  【MySQL Security】

  在Windows中MySql以服務形式存在,在使用前應確保此服務已經啟動,未啟動可用net start mysql命令啟動。而Linux中啟動時可用“/etc/rc.d/init.d/mysqld start”命令,注意啟動者應具有管理員權限。剛安裝好的MySQL包含一個含空密碼的root帳戶和一個匿名帳戶,這是很大的安全隱患,對於一些重要的應用我們應將安全性盡可能提高,在這裡應把匿名帳戶刪除、root帳戶設置密碼,可用如下命令進行:

  Mysql> use MySQL;

  MySQL> delete from User where User=”";

  MySQL> update User set Password=PASSWORD(’newpassWord’) where User=’root’;

  如果要對用戶所用的登錄終端進行限制,可以更新User表中相應用戶的Host字段,在進行了以上更改後應重新啟動數據庫服務,此時登錄時可用如下類似命令:

  MySQL -uroot -p;

  MySQL -uroot -pnewpassWord;

  MySQL mydb -uroot -p;

  MySQL mydb -uroot -pnewpassWord;

  上面命令參數是常用參數的一部分,詳細情況可參考文檔。此處的mydb是要登錄的數據庫的名稱。

  在進行開發和實際應用中,用戶不應該只用root用戶進行連接數據庫,雖然使用root用戶進行測試時很方便,但會給系統帶來重大安全隱患,也不利於管理技術的提高。我們給一個應用中使用的用戶賦予最恰當的數據庫權限。如一個只進行數據插入的用戶不應賦予其刪除數據的權限。MySQL的用戶管理是通過 User表來實現的,添加新用戶常用的方法有兩個,一是在User表插入相應的數據行,同時設置相應的權限;二是通過GRANT命令創建具有某種權限的用戶。其中GRANT的常用用法如下:

  grant all on mydb.* to NewUserName@HostName identifIEd by “passWord” ;

  grant usage on *.* to NewUserName@HostName identifIEd by “passWord”;

  grant select,insert,update on mydb.* to NewUserName@HostName identifIEd by “passWord”;

  grant update,delete on mydb.TestTable to NewUserName@HostName identifIEd by “passWord”;

  若 要給此用戶賦予他在相應對象上的權限的管理能力,可在GRANT後面添加WITH GRANT OPTION選項。而對於用插入User表添加的用戶,Password字段應用PASSWord 函數進行更新加密,以防不軌之人竊看密碼。對於那些已經不用的用戶應給予清除,權限過界的用戶應及時回收權限,回收權限可以通過更新User表相應字段,也可以使用REVOKE操作。

  全局管理權限:

  FILE: 在MySQL服務器上讀寫文件。

  PROCESS: 顯示或殺死屬於其它用戶的服務線程。

  RELOAD: 重載訪問控制表,刷新日志等。

  SHUTDOWN: 關閉MySQL服務。

  數據庫/數據表/數據列權限:

  ALTER: 修改已存在的數據表(例如增加/刪除列)和索引。

  CREATE: 建立新的數據庫或數據表。

  DELETE: 刪除表的記錄。

  DROP: 刪除數據表或數據庫。

  INDEX: 建立或刪除索引。

  INSERT: 增加表的記錄。

  SELECT: 顯示/搜索表的記錄。

  UPDATE: 修改表中已存在的記錄。

  特別的權限:

  ALL: 允許做任何事(和root一樣)。

  USAGE: 只允許登錄–其它什麼也不允許做。

  【MySQL 導入導出】

  Export dmp:

  C:>MySQLdump -uroot -proot mydb1> C:mydb.dmp

  Import dmp:

  C:>MySQL -h localhost -u root -p mydb2 < C:mydb.dmp

  OR:

  C:>MySQL -uroot -proot

  MySQL> show databases;

  MySQL> use mydb2;

  MySQL> source C:mydb.dmp

  導入數據的時候發現有的地方有這個錯誤:

  C:>MySQL -h localhost -u root -p mydb2 < C:mydb.dmp

  ERROR 1153 (08S01) at line 498: Got a packet bigger than 'max_allowed_packet' bytes

  問題出在調整了bugzilla的上傳附件的大小卻沒有調整MySQL的配置文件,於是調整

  /etc/my.cnf (Linux)

  MySQL Server 5.0my.ini (Windows)

  修改MySQL的最大允許包大小

  在[MySQLd]部分(不在這部分沒用)添加一句:

  max_allowed_packet=10485760

  PS:建議在5.0後的版本中關掉old_passWords選項。

  如果你不知道你的OLD_PASSWordS是不是開啟了,可以用命令。

  MySQL >show VARIABLES like '%old_passWords%';

  重啟MySQL服務就可以了,這裡設置的是10MB。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved