一、 用戶登錄
格式: mysql -h主機地址 -u用戶名 -p用戶密碼
mysql -h110.110.110.110 -uroot -p123
本地可以直接mysql –uroot -p
二、 用戶退出
exit、quit
三、 添加用戶
mysql.user表保存的是用戶的登錄信息
- 直接添加無權限
insert into mysql.user (host,user,password) values('%','jifei',PASSWORD('jifei'));
- 添加並賦權
grant select on 數據庫.* to '用戶名'@'登錄主機' identified by '密碼'
四、 用戶權限
- 添加權限
grant 權限 on 數據庫.表 to '用戶名'@'登錄主機';
權限: select ,update,delete,insert(表數據)、create,alert,drop(表結構)、references(外鍵)、create temporary tables(創建臨時表)、index(操作索引)、create view,show view(視圖)、create routine,alert routine,execute(存儲過程)、all,all privileges(所有權限)
數據庫:數據庫名或者*(所有數據庫)
表:表名或者*(某數據庫下所有表)
主機:主機名或者%(任何其他主機)
例:grant selec,insert,update,delete on *.* to 'jifei'@'%';
- 撤銷權限
revoke 權限 on 數據庫.表 from '用戶名'@'登錄主機';//將to改為from
例:revoke all on *.* from ‘jifei’@’%’;
- 查看權限
show grants;//自己
show grants for dba@localhost;//指定用戶指定host
五、 刪除用戶
delete from mysql.user where user='' and host='';
六、 修改密碼
update mysql.user set password=PASSWORD('111111') where user='root';
七、 找回密碼
- 關閉mysql服務
killall -TERM mysqld
- 修改配置文件
vi /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
- 重啟mysqld
service mysqld restart
- 登錄
mysql -uroot -p
- 修改密碼
update mysql.user set password=PASSWORD('111111') where user='root';
flush privileges;//刷新權限
- 修改配置文件
vi /etc/my.cnf
去掉之前的改動
- 重啟服務
- 設置遠程用戶
八、 遠程用戶
① 限制在指定ip登錄host為ip詳情請看 添加權限
② 在任意遠程ip登錄host為%詳情請看 添加權限
- 遠程訪問
mysql -h110.110.110.110 -uroot -p123;//指定h為ip詳情請看 用戶登錄
一些標准實例:
1. mysql.user表實例:一般來說,Host字段都使用ip來限制,而不是機器名(機器名可變,不是特別靠譜)
select Host, User from user;
| 172.17.% | dev |
| 172.17.0.% | export |
| 172.17.0.20 | demo |
| 172.28.0.% | dev |
| 192.168.% | dev |
| 110.111.126.% | demo |
| 110.111.126.103 | helper |
| 110.111.127.% | webnav |
| localhost | backup |
| localhost | backupdata |
| localhost | root |
+-----------------+-----------------+
2. 授權實例:show grants for 'helper'@'110.111.127.%'
+--------------------------------------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'helper'@'110.111.127.%' IDENTIFIED BY PASSWORD 'xxxxxxxxxxxxxxxxx' WITH MAX_USER_CONNECTIONS 200 |
| GRANT ALL PRIVILEGES ON `helper_online`.* TO 'helper'@'110.111.127.%' |
+--------------------------------------------------------------------------------------------------------------------------------------------------+