1. 程式人生 > 其它 >資料庫學習<三>MySQL

資料庫學習<三>MySQL

基礎

  • 連線mysql
    mysql -h 110.110.110.12 -u root -p
    注意:想要成功連線到遠端主機,需要在遠端主機開啟MySQL遠端訪問許可權

  • 退出
    exit

  • 建立新使用者,前提是以管理員身份執行(root)
    grant all privileges on *.* to testuser@localhost identified by "123456" ;
    建立新使用者,使用者名稱為 testuser, 密碼為123456

  • 設定mysql的訪問許可權,前提是一管理員身份執行

mysql資料許可權分配

一般情況下,應用與資料庫並不在同一臺機器上,這樣應用就需要遠端訪問資料庫。然而,預設狀態下,mysql的使用者是沒有遠端訪問許可權的,這時有兩種解決辦法:

  • 修改表
    可能是你的帳號不允許從遠端登陸,只能在localhost。這個時候只要在localhost的那臺電腦,登入mysql後,更改 "mysql" 資料庫裡的 "user" 表裡的 "host" 項,從"localhost"改為 "%"
mysql -u root -p;
use mysql;
update user set host = '%' where user = 'root';
elect host, user from user;
  • 授權(推薦)
mysql -h localhost -u root //以管理員身份連線資料庫
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION  //賦予任何主機訪問資料庫的許可權
FLUSH PRIVILEGES  //授權之後必須重新整理許可權才生生效
EXIT //退出
  • 設定指定的使用者以指定的密碼訪問資料庫
設定myuser使用mypassword從任何主機連線到mysql伺服器的話。
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%'IDENTIFIED BY 'mypassword' WI
TH GRANT OPTION;

如果你想允許使用者myuser從ip為192.168.1.6的主機連線到mysql伺服器,並使用mypassword作為密碼
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3'IDENTIFIED BY
'mypassword' WITH GRANT OPTION;

FLUSH PRIVILEGES(授權之後必須重新整理許可權才生生效)

EXIT

修改密碼

格式: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

增加新使用者

格式:grant select on 資料庫.* to 使用者名稱@登入主機 identified by “密碼”
例如:
增加一個使用者 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”;

如果你不想 test2 有密碼,可以再打一個命令將密碼消掉。
grant select, insert, update, delete on mydb.* to test2@localhost identified by “”;

顯示類的命令

  • 顯示資料庫列表
    show databases;

  • 顯示某個資料庫中的表
    use mysql;
    show tables;

  • 顯示資料表的結構
    describe 表名;

  • 建立庫
    create database 庫名;

  • 建表
    use 庫名;
    create table 表名 (欄位設定列表);

  • 刪庫和刪表
    drop database 庫名;
    drop table 表名;

  • 將表中記錄清空
    delete from 表名;

  • 顯示錶中的記錄
    select * from 表名;

  • 顯示最後一個執行的語句所產生的錯誤、警告和通知
    show warnings;

  • 只顯示最後一個執行語句所產生的錯誤
    show errors;

資料庫備份

mysqldump --opt school>school.bbb
註釋:將資料庫school備份到school.bbb檔案,school.bbb是一個文字檔案,檔名任取

資料庫自動備份:(待續)

還原和匯入

還原/匯入資料庫,匯入過程,進入 mysql 資料庫控制檯,如 mysql -u root -p
mysql>use 資料庫
然後使用 source 命令,後面引數為指令碼檔案(如這裡用到的.sql)
mysql>source d:\dbname.sql
如果提示找不到檔案,輸完 source 後,可以用滑鼠把檔案直接拖進命令列視窗

啟動跟蹤

mysqld --debug

關閉服務

mysqladmin -u root shutdown

啟動服務

mysqld --console

安全設定

一、內部安全性-保證資料目錄訪問的安全
1.1資料庫檔案。
1.2日誌檔案。
二、外部安全性-保證網路訪問的安全
2.1 MySQL 授權表的結構和內容
2.2 伺服器控制客戶訪問
2.3 避免授權表風險
2.4 不用 GRANT設定使用者