mysql为了保证安全性,在默认情况下,只允许在本地登录,在日常工作中,经常会需要用户远程连接使用该数据库,因此便需要创建新的用户,给其分配相应的权限,如下:
注:关键字都应该大写,尽量养成好习惯
- 创建新用户:CREATE USER 'username'@'host' IDENTIFIED BY 'password';
- username:你将创建的用户名
- host:指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost,如果想让该用户可以从任意远程主机登陆,可以使用通配符
%
- password:该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器
如:CREATE USER 'user01'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'user01'@'10.246.34.85' IDENDIFIED BY '123456';
CREATE USER 'user01'@'%' IDENTIFIED BY '123456';
CREATE USER 'user01'@'%' IDENTIFIED BY '';
CREATE USER 'user01'@'%';
2.授权:
命令:GRANT privileges ON databasename.tablename TO 'username'@'host'
- privileges:用户的操作权限,如
SELECT
,INSERT
,UPDATE
等,如果要授予所的权限则使用ALL
- databasename:数据库名
- tablename:表名,如果要授予该用户对所有数据库和表的相应操作权限则可用
*
表示,如*.*
如:GRANT SELECT, INSERT ON test.user TO 'user01'@'%';
GRANT ALL ON *.* TO 'user01'@'%';
GRANT ALL ON maindataplus.* TO 'user01'@'%';
使用SQLyog建立新连接:查询安装mysql主机或服务器的ip地址,在sqlyog中的新建一个连接,如下,输入用户名、密码、安装mysql的服务器端/主机的ip地址。点击连接即可
3.查看数据库中所有的用户和权限问题
SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
4.查看某个用户的权限
SHOW GRANTS for root@‘%’;