sql語句時刻都在用,所以就不容易忘記

2022-07-31 13:21:08 字數 2233 閱讀 4106

sql語句時刻都在用,所以就不容易忘記。但mysql管理相關的就用得少了,特別是使用者管理用得更少,所以今天覆習並嘗試了各種管理的方法~做下筆記:

mysql的使用者許可權是用乙個表來存放的,也就是mysql這乙個系統資料庫的user資料表。其實這乙個表的字段除了password之外都是明文存放的,比較好理解。而password這一字段是用mysql自己的加密演算法來進行加密的,而不是md5演算法~了解了這些之後就明白我們可以通過sql語句來新增、修改和刪除使用者了,用sql來修改user表時要注意password這一字段的資訊要用password()函式來加密~還有就是修改完使用者表之後要記得用命令flush privileges來重新整理許可權列表。今天用update user set password=pasword("root")之後忘記用flush privileges來重新整理就用新密碼嘗試重新登入,結果是密碼錯誤的~因為還沒有重新整理修改,所以密碼還是原來那個的~要修改user表必須要有對應的許可權才可以的,一般是用root來修改吧~

以上是用sql語句來修改user表來達到管理使用者的效果,而mysql也自帶了一些管理工具來管理使用者的:mysqladmin:在shell下進行密碼修改的命令,用法是mysqladmin -u username -poldpassword password newpassword因為這個命令是在shell下執行的,所以要確保有足夠的許可權連線上mysql server才可以進行修改密碼的,用這個命令修改密碼時不用再加上password()函式來進行加密~  還有兩個是在mysql客戶端進行使用者管理的工具set password和grant ...identified by~使用set password語句,mysql> set password for user@host password=password("password);這語句也必須使用password()函式,但是不需要使用flush privileges語句。

使用grant語句mysql> grant usage on dbname.tbname to user@host identified by "password";這裡password函式是不必要的,也不需要使用flush privilleges。

管理使用者時也要注意給使用者分配許可權,可以對應某個資料庫或某個表,許可權有select,insert,update,delete,drop,create,alter,index這些都可以在mysql的user表下看到對應的字段,對應的賦值是y與n,預設是n也就是沒許可權,還有一些管理員許可權的就不寫出來了~還有兩個用grant工具是用到的許可權是all和usage,這是兩個意思相反的許可權,all是擁有全部許可權,usage是只有連線進入mysql server的許可權~

今天修改密碼時不知道密碼還沒flush privileges;以為是自己修改錯誤,就順便學習忘記mysql密碼時應該怎麼辦:

mysql中文參考手冊上的1. 首先停止mysql server,可以用/etc/init.d/mysqld stop或者killall -term mysqld你必須是unix的root使用者或者是你所執行的server上的同等使用者,才能執行這個操作。

2. 使用`--skip-grant-tables' 引數來啟動 mysqld。 (linux下/x/bin/mysqld_safe--skip-grant-tables , windows下x:\mysql\bin\mysqld.exe --skip-grant-tables)

3. 然後無密碼登入到mysqld server ,>use mysql>update user set password=password("new_pass") where user="root";>flush privileges;。你也可以這樣做:`mysqladmin -h hostname -u user password 'new password''。

4. 載入許可權表: `mysqladmin -h hostname flush-privileges' ,或者使用 sql 命令`flushprivileges'。5.killall -term mysqld6.用新密碼登陸

mysql的備份與恢復:  在本地備份表,用mysql客戶端連線到mysql server後用select * from table intooutfile "filename";對應的恢復方法是load data infile "filename" [replace|ignore] intotable table_name;  本地或者遠端備份資料庫或表mysqldump -h -u -p dbname.tablename >filename;對應的恢復資料方法是:mysql -u -p dbname.tablename   暫時先記下這些常用的mysql管理方法~

SQL語句 limit 語句

select from table limit offset,rows rows offset offset 在我們使用查詢語句的時候,經常要返回前幾條或者中間某幾行資料,這個時候怎麼辦呢?不用擔心,mysql 已經為我們提供了上面這樣乙個功能。limit 子句可以被用於強制 select 語句返回...

SQL語句 UPDATE語句

update students set sname abcd gender 1 where sid 1 update students,students2 set students.sname students2.sname,students.gender students2.gender wher...

SQL語句 DCL語句

目錄 資料控制語言 查詢使用者 建立使用者 刪除使用者 修改使用者密碼 忘記管理員使用者密碼解決辦法 檢視許可權 給使用者授權 撤銷授權 管理使用者,對使用者授權的操作,即資料控制語言,用來定義資料庫的訪問許可權和安全級別,及建立使用者。主要包括建立使用者 給使用者授權 對使用者撤銷授權 查詢使用者...