做爲php裏最經常使用的數據庫mysql,除掉最經常使用的mysql語句外,mysql的一些管理也是須要了解的。
Linux裏登陸mysql:
mysql -h IP -uroot -p
enter後 會提示輸入密碼。
一個比較常見遇到的問題是(忘記了root密碼),解決方案:
找到my.cnf(mysql的配置文件,在windows裏是my.ini)
Linux的默認目錄是 /etc/mysql
在mysqld里加上一句
skip-grant-tables
保存退出 service mysql restart 數據庫服務重啓。
而後mysql登陸的時候,能夠不須要密碼。對數據庫進行從新設置
UPDATE user SET Password = password ('new-password’) WHERE User = ‘root’
這樣就更改了root的新密碼。
而後flush privileges ; (必定要刷新權限,不然是不會生效的)。
而後service mysql restart
這樣就完成了不知道數據庫密碼的狀況下,對密碼的更改。
擁有了數據庫根目錄權限後,在大多數的使用場景裏面,咱們須要管理一個數據庫服務器,可是每一個項目僅僅是使用了一個或者倆個數據庫,並且爲了保證數據庫總體的安全,並不提倡給每一個項目都是根目錄權限。通常的應用場景是,給某個項目指定特定鏈接的數據庫和操做權限(有的用戶只能有查看權限,而有的用戶擁有所有的權限) 新增長數據庫的權限語句,能夠精確到具體的數據表權限操做
GRANT ALL PRIVILEGES ON test.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY 'mypassword' ;
給數據庫賬號增長了權限後,要讓受權用戶當即生效,必須加上下面的
FLUSH PRIVILEGES;(讓賦予了權限的賬號生效)
這樣就完成了數據庫系統的單獨數據庫的分權(all privileges能夠換成對應的select insert update delete等操做)
遠程權限登陸:
GRANT ALL PRIVILEGES ON test.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' ; 這樣就講限定從192.168.1.3拓展到任意遠程主機能夠進行登陸了。爲了安全,通常用localhost(只容許使用數據庫)。
給某個用戶賦予不一樣的權限
grant select,insert,update,delete,drop,create on wifijunData.* to hafu@"%" identified by "test01%"php