Linux MySQL数据库远程连接的两种方法
  TEZNKK3IfmPf 2023年11月14日 25 0

                  MySQL数据库远程连接的若干问题

我想,如果没有银行等等这样的大型企业用户,那么MySQL一定是当之无愧的数据库市场使用率第一名,相对来说,第二名自然有第二名的道理,简单,易用,稳定,免费等等特点是MySQL普及的原因,但相对的,稳定,安全与oracle相比有所不如。

 那么,MySQL的安全策略中,在数据库安装并初始化完毕后,用户的权限基本都是给的最小的,毫无疑问,其中root用户是比较特殊的,可以对MySQL中的所有库增删改查,但仅限本地的执行,而其余的新建普通用户必须通过root用户来进行赋权。服务本地化,权限的细化无疑对MySQL的安全性是一个提升。但,数据库的功能是数据的永久化,仅仅本地化是无法满足需求的,因此,我们可能会需要非本地连接数据库,也就是MySQL远程连接。实现远程连接有两种方法,下面介绍第一种方法,提权法:

MySQL的提权语句,我想应该好好看看。

GRANT 【权限内容】 ON 【库名】.【表名】 TO '【用户名】'@'【IP地址】' IDENTIFIED BY '【密码】' WITH GRANT OPTION;

逐字的解释下:

grant:英语内意思为同意,准许,许可,在MySQL中可以理解为提升权限

权限内容:增删改查,对应于MySQL内是  select(查)update(改)insert(增)delete(删),all privileges代表所有权限

on 库名.表名:在哪个表,前述的权限

TO '【用户名】'@'【IP地址】':到 哪个用户在哪个网段,ip地址如果换成% 代表所有网段,当然包括远程拉

DENTIFIED BY '【密码】':由哪个密码来验证,确认前述动作

因此,远程连接数据库提升用户权限即可,@ip地址改成@%,自然代表突破了本地,可以远程。

以root用户远程连接为例:sql语句可以写成如下:

GRANT ALL PRIVILEGES ON mysql.user TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

这种方法,密码是同时更改的。indetified by‘’其中的密码可以任意,当然,用户也是同时建立了,并且权限还是很高的那种,这并不是安全的并且推荐的方法。

第二种方法:

内建表改值法,在MySQL中,有一个内建库,库名mysql,这是MySQL自带的内建库,其中有一张表,表名为user,其中存储有这个MySQL中的用户所有相关数据,比如,密码值,用户名,host,也就是该用户的使用域,在刚安装完毕MySQL后,例如,root用户,该用户在user表内的对应host值为localhost,也就是说本地,那么,我们将该root用户所对应的host值修改为%,表示所有host域都可以使用root,那么,我们就可以远程连接MySQL了。

因此,可做如下操作:

1。定位到mysql库。2.直接修改表内对应的root用户的host值 3.为了同步,不产生异常,刷新所有数据库。

mysql语句如下:

SHOW DATABASES;
USE mysql;
UPDATE user SET HOST='%' WHERE USER='root';#这句意思是更改user表中的root用户对应的host列的值为%。

#这时会报错。ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY',不要慌,刷新权限表即可
FLUSH PRIVILEGES;#刷新所有表

无疑,这种方法是最安全的,因为权限并没有更改,造成权限的外溢,剩下的工作仅仅是需要更改用户的密码强度防止黑客撞库了。

当然,两种方法都需要root用户权限,记住,不是Linux系统root用户,是mysql内的root用户。

强烈推荐使用第二种方法,毕竟安全是第一的,第一种方法,权限混乱,密码混乱,虽然可以实现远程,但权限赋予的很大。

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月14日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年05月31日   25   0   0 mysql
  TEZNKK3IfmPf   2024年05月17日   52   0   0 sqlmysql
  TEZNKK3IfmPf   2024年05月31日   31   0   0 数据库mysql
  TEZNKK3IfmPf   2024年05月17日   49   0   0 查询mysql索引
  TEZNKK3IfmPf   2024年05月17日   50   0   0 jsonmysql
  TEZNKK3IfmPf   2024年05月17日   49   0   0 mysqlphp
  TEZNKK3IfmPf   2024年05月31日   27   0   0 数据库mysql
TEZNKK3IfmPf