mysql数据库指定ip远程访问(设置远程连接)
远程访问mysql报错,ip不允许链接的情况:
错误号码1045
Access denied for user '用户名' @'数据库地址' (using password:YES)
查看权限
# 查看mysql系统所有权限 show privileges; # 查看当前用户权限 SHOW GRANTS; # 或 SHOW GRANTS FOR CURRENT_USER; # 或 SHOW GRANTS FOR CURRENT_USER(); # 查看某用户的全局权限 SHOW GRANTS FOR 'user'@'主机地址' ;
1.登录
# 连接格式 mysql -h数据库服务器地址 -P端口 -u用户名 -p"密码"; # 示例 mysql -h127.0.0.1 -P3306 -uroot -p"密码"; # 简写(数据库服务器地址默认,一般是指直接在数据库服务上操作) mysql -uroot -p"密码";
之后输入密码进行登录。
2.设置远程访问,及权限设置明
2.1,创建用户,并设置允许的远程ip访问权限
# 创建用户 create user '新用户名'@'允许的来源ip' identified by '新用户的密码'; # 查看是否创建成功 select Host,User from mysql.user; # 设置用户授权(该示例只有“select,execute,index”这3个权限哦) grant select,execute,index on *.* to '新用户名'@'允许的来源ip'; #刷新权限 flush privileges;
2.2,命令解释
第一行是创建新用户(如果您想直接开放root用户则不需要新创建),其中密码是新用户的密码, 其中ip是允许远程访问的IP的值。
第二行是查看mysql系统用户表,检查新建用户是否成功。
第三行是设置指定用户的权限。GRANT 关键字后面空格人后跟权限名称。我这里只给了“select,execute,index”这3个权限。如果想给全部权限应该是 GRANT ALL PRIVILEGES ON ……
ALL PRIVILEGES ON 后面的*.*表示所有数据库,即完全访问权限,也可以指定为特定数据库或特定表。
而IP这里,可以使用%来表示所有IP。
第四行是使设置立刻生效。
mysql赋权操作
v8及以前:
# mysql的赋权操作(适用v8以前版本): GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘ IDENTIFIED BY ‘密码‘ WITH GRANT OPTION; # 变更权限后执行刷新权限才能生效 flush privileges;
mysql8中应该使用:
#mysql8中应该使用: grant all privileges on *.* to 'root'@'%' ;
【赋权命令格式解释】
GRANT:赋权命令
ALL PRIVILEGES:当前用户的所有权限
ON:介词
*.*:当前用户对所有数据库和表的相应操作权限
TO:介词
‘root’@’%’:权限赋给root用户,所有ip都能连接
IDENTIFIED BY ‘123456’:连接时输入密码,密码为123456
WITH GRANT OPTION:允许级联赋权
参考:
标签:赋权,ip,数据库,用户,mysql,权限,远程 From: https://www.cnblogs.com/xiongzaiqiren/p/16821748.html