通過修改user表授權
mysql 許可權控制資訊儲存在表mysql.user中.
mysql.user 表字段如下:
host:使用者通過哪台主機訪問;
user: 使用者名稱
password: 加密密碼
*_priv等字段就是對應的許可權.
如下記錄:
(host, user, select_priv) = (192.168.1.1, zhangsan, y) 即在客戶機192.168.1.1上通過zhangsan賬號訪問資料庫, 具有查詢許可權.
(host, user, select_priv) = (192.168.1.2, zhangsan, n) 即在客戶機192.168.1.2上通過zhangsan賬號訪問資料庫, 沒有有查詢許可權.
host 的值可以是127.0.0.1, localhost 代表本機的ip, 即在mysql伺服器上登入mysql. %代表除本機外的其他客戶機的ip.
(host, user, select_priv) = (%, zhangsan, y) 即在任何客戶機上通過zhangsan賬號登入具有查詢許可權.
向user表中插入資料時, password需要用password函式加密, 如:
insert into user (host,user,password) values ('%','root', password('123456'));
插入完成後執行flush privileges 重新整理許可權.
使用grant 命令授權
語法格式為 grant 許可權 on 資料庫物件名.表明 to 使用者;
如grant select on testdb.* to zhangsan@'%' 張三通過任何客戶機登入資料庫可以對testdb下的任何表執行select操作.
grant all on *.* to zhangsan@localhost; zhangsan在本機登入可以管理 mysql 中的所有資料庫
解決遠端客戶端無許可權登入mysql伺服器的問題
剛安裝完成mysql後, 通過客戶端連線mysql可能會出現這樣的問題:
access denied for user 'root'@'localhost'
這就是沒有授權給客戶機登入, 解決辦法可以參考上面的授權.
grant all on *.* to zhangsan@localhost;
或insert into user (host,user,password) values ('%','root', password('123456'));
使用insert into user比較繁瑣, 每個許可權欄位都要賦值, 建議使用grant命令.
如果root也沒有許可權遠端連線而又不能直接操作伺服器, 可以進入mysql的安全模式進行授權,
開啟mysql安全模式步驟如下:
1. 停止mysql服務 service mysqld stop
2. 執行mysqld_safe --user=mysql --skip-grant-tables --skip-networking
3. 執行mysql命令, 看是不是進入mysql啦!
進入後按上面說的配置許可權就ok啦, 配置完成後退出mysql ,然後重啟mysql服務 service mysqld restart.
mysql配置使用者許可權 mysql使用者許可權配置
mysql使用者許可權配置 有什麼不對的地方請各位大神多多指教!1,檢視使用者表 mysql select user,password,host from mysql.user user 使用者名稱 password 密碼 加密 host 連線ip 2,開放遠端連線 vim etc mysql ma...
MySQL基礎 許可權配置
mysql grant all privileges on to localhost identified by mysql grant all privileges on to localhost identified by mysql create database icebug db mysq...
mysql展示系統配置許可權 mysql許可權設定
這篇文章主要介紹了在linux系統的命令列中為mysql建立使用者的方法,包括對所建使用者的許可權管理,需要的朋友可以參考下 要訪問乙個mysql伺服器,你需要使用乙個使用者帳號登入其中方可進行。每個mysql使用者帳號都有許多與之相關連的屬性,例如使用者名稱 密碼以及許可權和資源限制。許可權 定義...