xzhuan原创稿件,转载请注明出处!
1. root账户登录mysql
1.1 管理员控制台 登录命令
mysql -u -root -p
1.2 弹出Enter password: 输入密码-然后回车
2. root账户修改密码
2.1 执行1.root账户登录mysql
2.2 修改密码
set password for root@localhost = password('新密码');
2.3 mysql-8.0+可能会报语法错误 那么输入下面这句修改密码
alter user 'root'@'localhost' identified by '新密码';
3. navicat连接不上
查看用户信息
select host,user,plugin,authentication_string from mysql.user;
备注:host为%表示不限制ip localhost表示本机使用plugin非mysql_native_password则需要修改密码
mysqla8之前的版本中加密规则是mysql native password,而在mysqla8之后,加密规则
caching sha2 password.
方法1.升级navicat坞区动;
方法2.把mysql用户登密码加密规则还原成mysql native password.
使用命令
ALTER USER 'root'@'%'IDENTIFIED WITH mysql_native_password BY '123456';
更新用户root host为% 密码为123456
ALTER USER 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY '123456';
更新用户root host为localhost 密码为123456
刷新权限
FLUSH PRIVILEGES;
4. 创建用户、授权
创建用户格式:create user 用户名@ip地址 identified by '密码';
授权:grant all on *.* To 用户名@'ip地址';grant select,create on 数据库名.表名 To 用户名@ip地址;
# 创建用户
create user root@'192.168.11.%' identified by '123456';
# 这样root@192.168.11.% 这个网段的用户可以登录
create user elijah@'192.168.11.161' identified by '123456';
# 这样只允许elijah用户登录
create user li@'%' identified by '123456';
# 所有li用户都可登录
# 删除用户
drop user root@'192.168.11.%';
# 授权
grant all on *.* To elijah@'192.168.11.161';
grant select,create on oldboy_test.* To elijah@'192.168.11.161';
# 查看授权
show grants for elijah@'192.168.11.161';
# 刷新权限表
flush privileges;
补充:
mysql授权表共有5个表:user、db、host、tables_priv和columns_priv。
授权表的内容有如下用途:
user表
user表列出可以连接服务器的用户及其口令,并且它指定他们有哪种全局(超级用户)权限。在user表启用的任何权限均是全局权限,并适用于所有数据库。例如,如果你启用了DELETE权限,在这里列出的用户可以从任何表中删除记录,所以在你这样做之前要认真考虑。
db表
db表列出数据库,而用户有权限访问它们。在这里指定的权限适用于一个数据库中的所有表。
host表
host表与db表结合使用在一个较好层次上控制特定主机对数据库的访问权限,这可能比单独使用db好些。这个表不受GRANT和REVOKE语句的影响,所以,你可能发觉你根本不是用它。
tables_priv表
tables_priv表指定表级权限,在这里指定的一个权限适用于一个表的所有列。
columns_priv表
columns_priv表指定列级权限。这里指定的权限适用于一个表的特定列
5. mysql8授权
5.1 创建用户
create user 'root'@'%' identified by 'root';
5.2 授权
示例1:给root用户授予所有库表的全部权限
grant all privileges on *.* to 'root'@'%' with grant option;
示例2:给root用户授予特定库的所有表的写权限
grant select,insert,update on test_db_one.* to 'root'@'%' with grant option;
说明:
(1):all privileges 所有权限
(2):这里的 all privileges 可以替换为 select, update, delete, [insert](https://so.csdn.net/so/search?q=insert&spm=1001.2101.3001.7020), drop, create等
(3):*.* 左右星号分别为数据库和数据表
(4):‘’@‘’ 艾特符号左右分别代表用户名和访问权限,%为不限制远程IP访问
(5):with grant option 表示该用户可以给其他用户赋权,但是不能超过该用户的权限
刷新权限(每次权限变更都要刷新特权)
flush privileges;