mysql用户管理
一. 用户
1.用户的作用
1.登录mysql数据库
2 管理数据库对象
2.用户的定义
username@'主机域'
主机域: 可以理解为是mysql允许登录的白名单
主机域格式:
'10.0.0.51' : 只有51可以连接我 '10.00.0.5%': 50-59可以连接我 别的不行 '10.00.0.%' : 只要是.几的都是可以连接 ' %': 都可以 '10.0.0.0'/255.255.255.0: 固定子网 'db01' : 支持主机名或域名
3.用户管理
3.1 刚装完mysql数据库该做的事
1) 设定密码登录(root@locallhost)
mysqladmin -root -p password'123' 只能第一次设置 输入原密码
2) 使用密码登录
mysql -uroot -p(密码)
3) 清理无用用户
如果用户没有用户名或没有主机域没有密码的进行清理
清理无用用户:
mysql> select user,host,password from mysql.user; +------+-----------------------+-------------------------------------------+ | user | host | password | +------+-----------------------+-------------------------------------------+ | root | localhost | *E6CC90B878B948C35E92B003C792C46C58C4AF40 | | root | localhost.localdomain | | | root | 127.0.0.1 | | | root | ::1 | | | | localhost | | | | localhost.localdomain | | | root | % | *E6CC90B878B948C35E92B003C792C46C58C4AF40 | +------+-----------------------+-------------------------------------------+
drop user ''@'localhost'
3.2 如果误删了所有用户
因为验证用户信息是在连接层来验证用户,把连接层验证模块关掉,tcp/ip链接协议关掉,防止被外网连接
命令 : mysql_safe --skip-grant-tables--skip-networking &
mysql的启动参数 --skip-grant-tables不开启验证模块(登录就不验证用户名密码了)
本地能登录,验证模块都关闭了,远程也能登录,关闭远程连接 --skip-nerworking
1 .停掉服务(/etc/init.d/mysqld stop)
2 mysql_safe--skip-grant-tables --skip-networking &
3. mysql
4. use mysql
5. insert into user(user,host,password,ssl_type,ssl_cipher,x509_issuer,x509_subject) values ('root', 'localhost', PASSWORD('123'), ' ', ' ', ' ',' ');
6. /etc/init.d/mysqld restart
3.3 忘记root用户密码
- /etc/init.d/mysqld stop
- mysqld_safe --skip-grant-tables --skip-networking &
- mysql
- use mysql
- 5.6以前版本:update user set password=PASSWORD('1') where user='root' and host='localhost';
- 5.7以上版本:update user set authentication_string=PASSWORD('1') where user='root' and host='localhost';
- flush privileges;刷新授权
- **** 对于修改密码不建议使用 ,建议使用grant命令
4.用户管理-用户创建
# 创建用户 # 指定主机域创建用户并设置密码 create user www@'10.0.0.%' identified by '123'; # 查询用户 select user,host,password from mysql.user;