实例: create user gongbing@192.168.1.0/24>
create user gongbing@192.168.1.0.%> 可以使用通配符
%表示任意字符
_表示任意单个字符 2、用户授权创建和删除用户权限:GRANT REVOKE
用户授权: grant all privileges on dbname.tablename to username@host [identified by ‘password’]
授予用户username可以通过host对dbname.tablename数据库的表拥有所有权限
注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限. 3、修改用户密码 a)、修改root密码,这种方式适用于知道root密码(mysql数据库的密码不要和linux的密码混淆了哦。)mysqladmin -u username -p password ‘newpassword’
--注意:当使用mysqladmin修改普通用户时
[root@gc ~]# [root@gc ~]# mysqladmin -uhive -phive1 password hive
mysqladmin: Can't turn off logging; error: 'Access denied; you need (at least one of) the SUPER privilege(s) for this operation'
c)、登陆mysql数据库并修改用户名密码
mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> update user set password=password('123123') where user='root';
Query OK, 4 rows affected (0.00 sec)
Rows matched: 4 Changed: 4 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
注意:mysql5.6在通过上面修改密码后要求使用set password再设置一次密码。 d)、通过set命令设置
语法:SET PASSWORD FOR '用户名'@'主机' = PASSWORD('密码')
mysql> create database gongbing;
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
mysql> set password for 'root'@'localhost'=password('123123');
Query OK, 0 rows affected (0.00 sec)
mysql> create database gongbing;
Query OK, 1 row affected (0.00 sec)
--允许root通过远程登录
mysql> set password for 'root'@'%'=password('123123');
注意:要使用password函数,但不用flush privileges命令。
修改密码摘自:http://blog.csdn.net/lichangzai/article/details/8626591 4、删除用户
drop user ‘username’@‘localhost‘
系统内部安全
1、建议将数据目录的权限设置为700
2、不要使用root启动MySQL
3、注意~/.bash.history和~/.mysql.history目录,防止记录被窃取。
4、登录时密码不要直接输入在-p后面。
mysql5.5数据库root账户被删除的处理方法:
1、关闭mysql,并使用mysqld_safe --skip-grant-tables &重启
2、使用grant all privileges on *.* to root@localhost> 问题: MySQL报错:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
处理方法:
mysql>set global read_only=0;
mysql>flush privileges
外部网络安全
1、修改用户密码
方法一、mysqladmin -u root -p password ‘newpassword’
方法二、set password for 'root'@'localhost'=password('root');
方法三、use mysql;
update user set password=password('new_password') where user='root';
flush privileges;
2、删除多余账户
delete from user where='';
小技巧:
1)、忘记MySQL的root密码(本地登录拒绝访问)
1、safe_mysqld --skip-grant-tables &
2、使用root账户登录指定mysql数据库 mysql -u root mysql
3、更改密码:update user set password=password(’newpassword’) where user=‘root’
4、更新数据库授权表:flush privileges;
5、重启数据库并登录。
mysql> select * from user\G
*************************** 1. row ***************************
Host: %
User: root
Password: *23AE809DDACAF96AF0FD78ED04B6A265E05AA257
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin:
authentication_string: NULL
*************************** 2. row ***************************
system,\!:不退出当前程序的情况下,执行shell命令。
mysql> system ls -l
total 151680
-rwxr-xr-x. 1 root root 25470 Mar 3 05:38 innochecksum
-rwxr-xr-x. 1 root root 1458 Mar 3 05:28 msql2mysql
-rwxr-xr-x. 1 root root 6162461 Mar 3 05:38 myisamchk
-rwxr-xr-x. 1 root root 5768008 Mar 3 05:38 myisam_ftdump
-rwxr-xr-x. 1 root root 5749127 Mar 3 05:38 myisamlog
-rwxr-xr-x. 1 root root 5833390 Mar 3 05:38 myisampack
status:获取当前服务器状态信息
mysql> status;
--------------
mysql Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
Connection id: 69
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.5.48 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: latin1
Conn. characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 4 hours 20 min 52 sec
Threads: 3 Questions: 787 Slow queries: 0 Opens: 48 Flush tables: 1 Open tables: 41 Queries per second avg: 0.050
--------------