1.mysql用户的定义
在mysql中,用户由用户名和主机域组成的。
1.1 用户名的写法
mysql> create user test1@'localhost';
|
注意:用户名不要以数字、符号开头,如若一定要这么写,给用户名加上引号才能创建用户。
1.2 用户中的主机域的写法
127.0.0.1 ::1 localhost db01
|
172.16.1.% 172.16.%.% 172.%.%.% % 172.16.1.5% 172.16.1.0/255.255.255.0
|
其中%
代表所有,如172.16.1.%
即代表172.16.1.0~172.16.1.255这个范围内的所有地址
2.用户管理
2.1 创建用户
mysql> CREATE USER test2@'localhost' IDENTIFIED BY '123'; Query OK, 0 rows affected (0.00 sec)
|
2.2 查看数据库中得所有用户
mysql> SELECT User,Host,Password FROM mysql.user;
|
2.3 删除创建的用户
mysql> DROP USER test2@'localhost';
|
2.4 修改用户密码
mysql> UPDATE mysql.user SET Password=PASSWORD('123') WHERE User='root' AND Host='localhost';
|
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY '123';
|
mysqladmin -uroot -p123 password '456'
mysqladmin -uroot -p password
|
mysql> SET Password=PASSWORD('123');
|
3.用户权限管理
在mysql数据库中,给用户授权都是通过grant
命令来操作的
GRANT ALL PRIVILEGES ON *.* TO test03@'172.16.1.%' IDENTIFIED BY '123';
|
GRANT ALL PRIVILEGES ON mysql.* TO test03@'172.16.1.%' IDENTIFIED BY '123';
|
GRANT ALL PRIVILEGES ON mysql.user TO test03@'172.16.1.%' IDENTIFIED BY '123';
|
GRANT SELECT(User,Host) ON mysql.user TO test03@'172.16.1.%' IDENTIFIED BY '123';
|
4.解决忘记数据库root密码问题
此方法不适用于生产环境,因为要先停止数据库。记住在生产环境中停止数据库是个大忌。
nohup mysqld_safe --skip-grant-tables --skip-networking &
|
直接使用mysql
命令,就可以登进数据库了
update mysql.user set password=password('123') where user='root' and host='localhost';
|
刷新权限
mysqladmin -uroot -p123 shutdown
|