MySQL创建用户
一、登录mysql
mysql -uroot -p #创建用户需要root
扩展
#其中 u是账号, 小写的p是密码, h是IP地址, 大写的P是端口
mysql -uroot -p123456 -h127.0.0.1 -P3306
二、使用mysql数据库
use mysql; #账户信息全部保留在myqsl数据库中
扩展
#查看当前mysql数据库里有多少用户,创建的用户信息都会保留到mysql的user表中
select user,host from user;
#user是账号信息,host允许登录的IP,修改host为%,表示任意IP地址都可以登录.
update user set host = '%' where user = 'root';
flush privileges; #修改权限后,刷新数据库
三、创建普通用户
方法一
1.创建用户
#其中test是账号,而test123是密码
create user test identified by 'test123';
2.创建数据库
create database test_database; #先创建一个数据库
3.给用户设置权限
#给用户设置权限
#all代表所有权限,这里代表只将select,update给test用户
#test_database前面创建的数据库, 后面的*代表数据库下的所有内容
#test指前面创建的test用户,@后面的"%"是设置用户的host
#即root将test_database数据库所有的权限给test用户,且任意IP地址都可以登录访问
grant select,update on test_database.* to 'test'@'%';
扩展
1.select、insert、update和delete权限 允许你在一个数据库现有的表上实施操作,是基本权限
2.alter权限允许你使用ALTER TABLE
3.create和drop权限允许你创建新的数据库和表,或抛弃(删除)现存的数据库和表 如果你将mysql数据库的drop权限授予一个用户,该用户能抛弃存储了MySQL存取权限的数据库!
4.grant权限允许你把你自己拥有的那些权限授给其他的用户。
方法二
# 格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by '密码'
#创建test用户,密码为test123456,获取*(所有)数据库的所有权限,'%'(任意IP地址)都可以登录访问
grant all privileges on *.* to test@'%' identified by “test123” ;
四、刷新数据库
mysql 新设置用户或更改密码后需用flush privileges刷新MySQL的系统权限相关表,否则会出现拒绝访问,还有一种方法,就是重新启动mysql服务器,来使新设置生效
flush privileges; #刷新数据库
五、遇到的问题
SQLyog连接报错 Error No.2058 Plugin caching_sha2_password could not be loaded
ALTER USER 'test'@'localhost' IDENTIFIED BY 'test123' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'test'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test123'; #更新一下用户的密码
FLUSH PRIVILEGES;