Linux MySQL数据库远程连接的两种方法
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用户。
强烈推荐使用第二种方法,毕竟安全是第一的,第一种方法,权限混乱,密码混乱,虽然可以实现远程,但权限赋予的很大。
相关文章
- 怎样创建一个简单的mysql数据库文件_MySQL数据库
- MySQL数据表:如何清空又恢复(mysql数据表清空恢复)
- MySQL与微软携手共同开发数据库新时代(mysql微软)
- MySQL扩充数据库空间的实现方法(mysql扩展表空间)
- Linux下MySQL的快速部署(linux使用mysql)
- 保护MySQL数据库安全:密码保护的重要性(mysql数据库的密码)
- Linux分支:从主干到分支(linux的分支)
- MySQL数据库迁移—从搭建到运行(mysql迁移目录)
- MySQL数据库文档的自动生成指南(mysql数据库文档生成)
- 如何将Linux系统写入U盘: 一步步教你制作启动盘(linux系统写入u盘)
- 25 Linux替代软件推荐 超越传统,全新体验(linux替代软件)
- 如何开启MySQL慢日志并优化数据库性能?(mysql开启慢日志)
- C与MySQL:编程与数据库集成的完美拍档(c与mysql)
- 如何在Linux上创建数据库:实用指南(linux创建数据库)
- Linux网络命令配置指南(linux配置网络命令)
- 输入Linux重定向文件输入操作详细指南(linux重定向文件)
- Linux下搭建FTP服务器快速入门(ftp linux)
- 如何在MySQL中修改列的备注(mysql中修改列备注)
- MySQL利用翻页查询实现C程序数据库查询(c mysql 翻页查询)
- CentOS进驻MySQL轻松让您拥有数据库管理权(centos进mysql)
- 快速搭建CMS网站MySQL配置小秘诀(cms配置mysql)
- 数据库管理之比较BP数据库 vs MySQL(bp数据库与mysql)
- MySQL 1NF 规范用于数据库表结构优化(1nf mysql)
- MySQL数据库如何获取一列数据中的最长字符串(mysql 一列最长)
- 实现数据库高可用MySQL一主两从的目的(mysql一主两从目的)