为什么访问数据库要通过端口?
2015-09-16 09:44
239 查看
数据库大家都知道。
我们现在使用的数据库都是关系型数据库,说白了就是一张表,该表有各种信息。
再简化一点就是一个文件,用户提供一个查询的语句,那么该表返回一个你所查询的结果。
假设有个程序tinysql.exe,他可以管理数据库文件a.db,那么你在a.db调用一个sql做相关的查询可以做如下表示。
tinysql.exe a.db a.sql
这表示让tinysql.exe在a.db里面执行a.sql并返回一个查询结果就ok了。
但是如果大家用过现在的mysql就知道了,我们并不是这样访问数据的,而是提供一个数据所在主机的ip地址和端口。
为什么要这样?
那得先说说上面最原始访问数据库的缺点:1. 只能本地访问,2.无法多线程
但是使用了ip地址和端口后,任何只要和本主机联网的机器都可以访问。
这样数据库就成了一个单独的服务器了,一个前台线程负责监听,一个后台线程负责处理实际的sql语句。
另外为了安全,我们还可以要求用户提供一个用户名和密码。这样,应用程序访问数据库的方式就高级了很多。
我们现在使用的数据库都是关系型数据库,说白了就是一张表,该表有各种信息。
再简化一点就是一个文件,用户提供一个查询的语句,那么该表返回一个你所查询的结果。
假设有个程序tinysql.exe,他可以管理数据库文件a.db,那么你在a.db调用一个sql做相关的查询可以做如下表示。
tinysql.exe a.db a.sql
这表示让tinysql.exe在a.db里面执行a.sql并返回一个查询结果就ok了。
但是如果大家用过现在的mysql就知道了,我们并不是这样访问数据的,而是提供一个数据所在主机的ip地址和端口。
为什么要这样?
那得先说说上面最原始访问数据库的缺点:1. 只能本地访问,2.无法多线程
但是使用了ip地址和端口后,任何只要和本主机联网的机器都可以访问。
这样数据库就成了一个单独的服务器了,一个前台线程负责监听,一个后台线程负责处理实际的sql语句。
另外为了安全,我们还可以要求用户提供一个用户名和密码。这样,应用程序访问数据库的方式就高级了很多。
相关文章推荐
- Navicat for Mysql 10.0.10 注册码
- Maven 3 + Hibernate 3.6 + Oracle 11g Example (XML Mapping)
- Redis --- 管理
- mongodb添加文件出现error
- Redis --- 其它高级特性
- Maven 2 + Hibernate 3.2 + MySQL Example (Annotation)
- Maven 2 + Hibernate 3.2 + MySQL Example (Annotation)
- sql 孤立用户
- 数据库索引(二)
- Redis --- 常用命令
- 实现读取文本数据,在将数据导入mysql
- 数据库连接、批量插入
- Redis --- 排序SORT
- redis.conf 配置详解
- Oracle监听启动失败问题
- MySQL表定义缓存
- 【自】数据库系统原理(三)——测试总结后,
- Redis --- Redission客户端
- 查找当前数据库服务器中某张表存在于哪个数据库中
- oracle_PLSQL 快捷键使用技巧