天天看點

在Linux下給mysql建立使用者并配置設定權限及問題解決方案

在linux下安裝mysql請參考在linux系統中安裝mysql伺服器詳細步驟

1.建立使用者

  //登入MYSQL

  @>mysql -u root -p

  @>密碼

  //建立使用者

  mysql> insert into mysql.user(Host,User,Password) values(‘localhost’,'jeecn’,password(‘jeecn’));

  //重新整理系統權限表

  mysql>flush privileges;

  這樣就建立了一個名為:jeecn  密碼為:jeecn  的使用者。

  //退出後登入一下

  mysql>exit;

  @>mysql -u jeecn -p

  @>輸入密碼

  mysql>登入成功

  2.為使用者授權

  //登入MYSQL(有ROOT權限)。我裡我以ROOT身份登入。

  @>mysql -u root -p

  @>密碼

  //首先為使用者建立一個資料庫(jeecnDB)

  mysql>create database jeecnDB;

  //授權jeecn使用者擁有jeecn資料庫的所有權限

  @>grant all privileges on jeecnDB.* to  [email protected]  identified by ‘jeecn’;

  //重新整理系統權限表

  mysql>flush privileges;

  mysql>其它操作

  //如果想指定部分權限給一使用者,可以這樣來寫:

  mysql>grant select,update on jeecnDB.* to  [email protected]  identified by ‘jeecn’;

  //重新整理系統權限表。

  mysql>flush privileges;

  mysql> grant 權限1,權限2,…權限n on 資料庫名稱。表名稱 to 使用者名@使用者位址 identified by ‘連接配接密碼’;

  權限1,權限2,…權限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14個權限。

  當權限1,權限2,…權限n被all privileges或者all代替,表示賦予使用者全部權限。

  當資料庫名稱。表名稱被*.*代替,表示賦予使用者操作伺服器上所有資料庫所有表的權限。

  使用者位址可以是localhost,也可以是ip位址、機器名字、域名。也可以用’%’表示從任何位址連接配接。

  ‘連接配接密碼’不能為空,否則建立失敗。

  例如:

  mysql>grant select,insert,update,delete,create,drop on vtdc.employee to  [email protected]  identified by ‘123′;

  給來自10.163.225.87的使用者jee配置設定可對資料庫vtdc的employee表進行select,insert,update,delete,create,drop等操作的權限,并設定密碼為123。

  mysql>grant all privileges on vtdc.* to  [email protected]  identified by ‘123′;

  給來自10.163.225.87的使用者jee配置設定可對資料庫vtdc所有表進行所有操作的權限,并設定密碼為123。

  mysql>grant all privileges on *.* to  [email protected]  identified by ‘123′;

  給來自10.163.225.87的使用者jee配置設定可對所有資料庫的所有表進行所有操作的權限,并設定密碼為123。

  mysql>grant all privileges on *.* to  [email protected]  identified by ‘123′;

  給本機使用者jee配置設定可對所有資料庫的所有表進行所有操作的權限,并設定密碼為123。

  3.删除使用者

  @>mysql -u root -p

  @>密碼

  mysql>DELETE FROM mysql.user WHERE User=”jeecn”

  mysql>flush privileges;

  //删除使用者的資料庫

  mysql>drop database jeecnDB;

  4.修改指定使用者密碼

  @>mysql -u root -p

  @>密碼

  mysql>update mysql.user set password=password(‘新密碼’) where User=”jeecn” and Host=”localhost”;

  mysql>flush privileges;

  mysql>quit;

5.如果使用root無法連接配接本地庫的話:

提示:1045 access denied for user 'root'@'localhost' using password yes

前幾天都好好的,昨天沒弄,結果今天晚上過來提示上面的這個錯誤,重新開機mysql還是不可以

網上的方法看了幾個但是不知道怎麼弄

方法一: 

# /etc/init.d/mysql stop 

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 

# mysql -u root mysql 

mysql> UPDATE user SET Password=PASSWORD(’newpassword’) where USER=’root’; 

mysql> FLUSH PRIVILEGES; 

mysql> quit 

# /etc/init.d/mysql restart 

# mysql -uroot -p 

Enter password: <輸入新設的密碼newpassword> 

mysql> 

方法二: 

直接使用/etc/mysql/debian.cnf檔案中[client]節提供的使用者名和密碼: 

# mysql -udebian-sys-maint -p 

Enter password: <輸入[client]節的密碼> 

mysql> UPDATE mysql.user SET Password=PASSWORD(’newpassword’) where USER=’root’; 

mysql> FLUSH PRIVILEGES; 

mysql> quit 

# mysql -uroot -p 

Enter password: <輸入新設的密碼newpassword> 

mysql> 

繼續閱讀