資料庫學習<三>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設定使用者