mysql 创建用户并且为用户进行赋权的操作
登录MySQL
mysql -u root -p111111
1、添加新用户
--- 允许本地 IP 访问 localhost, 127.0.0.1
create user 'test01'@'localhost' identified by '123456';
--- 允许外网 IP 访问
create user 'test01'@'%' identified by '123456';
2、刷新授权
flush privileges;
3、为用户创建数据库
create database test01 DEFAULT CHARSET utf8 COLLATE utf8_general_ci;
4、为新用户分配权限
a、授予用户通过外网IP对于该数据库的全部权限
grant all privileges on `test01db`.* to 'test01'@'%' identified by '123456';
b、授予用户在本地服务器对该数据库的全部权限
grant all privileges on `test01db`.* to 'test01'@'localhost' identified by '123456';
c、刷新权限
flush privileges;
d、进行验证
退出 root 重新登录
exit
用新帐号 test01 重新登录,由于使用的是 % 任意IP连接,所以需要指定外部访问IP
mysql -u test01 -h 192.168.16.5 -p
4、mysql授权总结
授权的操作参考:
--- 创建用户
CREATE user '[用户名]'@'localhost'(本地访问Only) / '[用户名]'@'%'(可以外部访问) IDENTIFIED BY '[密码]';
--- 授权用户CRUD以及创建表的权限
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE ON [数据库名称].*(.* 表明授权作用域为该数据库下所有表)TO [用户名];
--- 立即启用修改
FLUSH PRIVILEGES;
--- 取消用户的所有数据库(表)的所有权限授权
REVOKE ALL ON *.* FROM [用户名];
--- 删除用户
DELETE FROM mysql.user WHERE user='[用户名]';
注:在Ubuntu服务器下,MySQL默认是只允许本地登录,因此需要修改配置文件将地址绑定给注释掉:
#bind-address = 127.0.0.1 #注释掉这一行就可以远程登录了
不然会报如下错误
ERROR 2003 (HY000): Can't connect to MySQL server on 'host' (111)
mysql授权的参考链接为:
链接1为:https://blog.csdn.net/piaocoder/article/details/53704126
链接2为:https://blog.csdn.net/xie_sining/article/details/80714463