(1)系统创建用户和创建用户并给予密码
useradd test1
passwd test1 # 交互
useradd test1 && echo 123 | passwd --stdin 123 # 非交互
useradd test1 -p 123 # 创建用户并给予一个密码
# 创建用户:useradd adduser
# 删除用户:userdel
# 修改用户:usermod
(2)mysql创建用户和创建用户并给予密码
mysql> create user wzj@'%'; # 创建用户
Query OK, 0 rows affected (0.00 sec)
mysql> create user wzj@'%' identified by '123'; # 注意这个细节
ERROR 1396 (HY000): Operation CREATE USER failed for 'wzj'@'%'
mysql> create user jzw@'%' identified by '123'; # 创建用户,没有权限
Query OK, 0 rows affected (0.00 sec)
# 进一步创建用户,并给予密码,并给予授权(细节:由这个用户就给权限,没有用户则创建用户并给权限)
grant all on test.* to jzw@'%' identified by 'wzj110';
注意
grant all on *. * to dbtest@'localhost' identified by 'dbtest';
-- 已有dbtest用户,这是在授权兼改密码
-- 没有dbtest的情况下是创建带密码用户兼授权
-- 所以还可以用grant命令建用户,改密码,尼玛又多了一项技能有没有
-- 注意:假如这个密码输的和原来的不一致,尼玛后面登录不了恐怕他也不知道咋回事。
(3)删除和修改mysql用户
drop user wzj@'%';
delete user ;
update ...
(4)mysql用户的定义
-- 形式:username@'主机域'
-- 主机域:可以理解为是MySQL登陆的白名单
-- 主机域格式:
-- '172.25.2.5'
-- '172.25.2.5%' # 有11个用户可以连接(子网)
-- '172.25.%。%' #
-- '10.0.%.%'
-- '%' # 所有的-->不包括localhost,必须用-h才能连接
-- 'db01' # 域名解析(主机名)
-- '10.0.0.51/255.255.255.0' # 想用子网掩码的方式
-- '10.0.0.51/24' #不支持这种格式的-->但是创建的时候没有报错!
细节
-- %和localhost区别
grant all on *.* to watf@'%';
grant all on *.* to watf@'localhost';
说明:用第一种授权方式并没有获得本地主机的权限,localhost并不是%的子集,远程主机和本地主机请分别授权
(5)mysql修改密码的方式
刚装完MySQL数据库该做的事情
mysqladmin -uroot -p password 'wzj110'
# 或者mysql_secure*进行初始化
四种:grant,mysaladmin,set,update
mysqladmin:库外修改密码,需要已知原来的密码!
grant:需要在库内修改密码,但是用户以前的权限不知道,不建议!
update:在库内修改密码(改表内的数据),建议!
忘记密码
-- /etc/init.d/mysqld start
-- mysqladmin -uroot -p password 'newjfner;gotnylh'
-- /etc/init.d/mysqld stop #(1)停
-- mysqld_safe --skip-grant-tables --skip-networking #(2)跳过授权表,跳过网络启动
-- mysql #(3)免密登陆
-- 修改密码
-- 5.6的update修改密码-->注意加上条件! #(4)修改密码
update mysql.user set password=PASSWORD('110') where user='root' and host='localhost';
-- 5.7(字段名称的差异)-->调用函数(加密)
update mysql.user set authentication_string=password('110') where user='root' and Host = 'localhost';
-- /etc/init.d/mysqld stop #(5)关闭
-- mysqladmin -uroot -p170510 shutdown #等价(5)-->之前的密码
-- /etc/init.d/mysqld start #(6)重启
-- mysql -uroot -p110 #(7)测试
说明:许多参数可以通过配置文件来修改!
set:改当前登陆用户的密码