Linux中安装mysql8.0
启动后
查看日志文件,找到 temporary password 后面的就是初始密码,没有初始密码的话使用mysql -uroot -p 然后回车应该就能进出了
find / -name mysqld.log
我的在: vi /var/log/mysql/mysqld.log
修改root用户密码
ALTER USER 'username'@'host' IDENTIFIED BY 'password';
说明:
username
:登录的用户名
host
:可以指定该用可以在什么哪些远程主机登录,如果想让该用户在任意主机登录可以使用%
通配符
password
:登录密码,密码可以为空
创建用户
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
用户授权
grant all privileges on *.* to 'username'@'host' identified by 'password' with grant option;
说明:
all privileges
:表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
on
:表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
to
:将权限授予哪个用户。格式:”用户名”@”登录IP或域名”。%表示没有限制,在任何主机都可以登录。比如:”root”@”192.168.0.%”,表示root这个用户只能在192.168.0 IP段登录
identified by
:指定用户的登录密码
with grant option
:表示允许用户将自己的权限授权给其它用户
可以使用GRANT给用户添加权限,权限会自动叠加,不会覆盖之前授予的权限,比如你先给用户添加一个SELECT权限,后来又给用户添加了一个INSERT权限,那么该用户就同时拥有了SELECT和INSERT权限。
注意:mysql5.7可以使用,如果是8.0要把identified by 'password'去掉不然会报错
示例
// 赋予用户zy所有库的所有表的全部权限。但是只能在本机登录,不能运程登录,可以将自己的权限授权给其它用户
1.grant all privileges on *.* to 'zy'@'127.0.0.1' with grant option;
// 赋予用户zy test库中的所有表的权限,该用户只能在192.168.1 IP段登录
2.grant all privileges on test.* to 'zy'@'192.168.1.%';
// 最高权限,可以运程登录,可以将自己的权限授权给其它用户
3.grant all privileges on *.* to 'zy'@'%' with grant option;
刷新授权
flush privileges;
撤销用户权限
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
注意:之前是怎么授权的,现在就怎么撤销授权,只是前面的关键字换了
删除用户
DROP USER 'username'@'host';
查看zy用户的权限
show grants for 'zy';
- 第一条数据是创建用户时默认授权,第二条我们自己授权的
启动、停止服务
1.启动服务
systemctl start mysqld
2.停止服务
systemctl stop mysqld