什么是数据库?
数据库(Database )是按照数据结构来组织、存储和管理数据的仓库。每个数据库都有一个或多个不同的 API 用于创建,访问,管理,搜索和复制所保存的数据。我们也可以将数据存储在文件中,但是在文件中读写数据速度相对较慢。所以,现在我们使用关系型数据库管理系统( RDBMS )来存储和管理的大数据量。所谓的关系型数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。 RDBMS 即关系数据库管理系统 (Relational Database Management 的特点:
1.数据以表格的形式出现
2.每行为各种记录名称
3.每列为记录名称所对应的数据域
4.许多的 行和列组成一张表单
5.若干的表单组成 database
- 数据库服务器 -->包含多个数据库;
- 数据库(datebases) --> 包含多个数据表;
- 数据表(table)
MySQL安装
在Linux系统(以ubuntu为例)执行命令$ sudo apt get install mysql server 版本号(例如5.6)。需要注意的是安装前先更新一下软件源以获取最新的版本号。
1. sudo apt-get install mysql server 版本号(如5.6) 2. 3. sudo apt-get update //更新软件源
MySQL 连接
以 root 权限登陆MySQL:
退出mysql> 命令提示窗口可以使用 exit 命令,如下所示:
数据库的工作逻辑
数据库远程连接及其常见问题
利用MySQL workbench远程连接。
连接时出现了10061的错误提示如图:
首先,服务器肯定是工作的,不然不会返回erro:10061的错误提示。也不会是客户端的问题,不然也不会从服务器返回一个错误值。这里我们查看 my.cnf文件。
输入命令:
1. ls /etc/mysql/ #查看my.cnf是否在这个目录下 2. 3. cd /etc/mysql/ #进入该目录 4. 5. sudo vim my.cnf #打开mysql的配置文件
这里提一下为什么要配置端口号:可以在一台物理服务器上面,同时启动多个数据库服务器,每一个监听在不同的端口上面,我们只要更改这个端口就可以多次启动。
这里我们再说一下出现的erro:10061。
该地址为回环地址,该地址是机器内部使用的地址,对外界使用是没有用的,所以绑定的这个IP地址是不可以对外使用的,所以链接错误。把该IP地址改为0.0.0.0,这个地址是一个任意的地址。更改完后里用命令: sudo /etc/init.d/mysql restart 重启mysql服务器。
重启之后在尝试重新连接,仍然出现错误:
数据库服务器限制root的远程登录,看一下限制的远程登陆是在哪里修改的。
输入命令(mysql所有的命令以分号结尾):
mysql -uroot -p #以root登陆
show databases;
use mysql;
show tables;
select *from user;
可以看到对root进行了限制,只允许在本机登陆。
select Host, User from user where User='root';
数据库的授权与登陆
可以看到对root的限制。因此我们可以创建一个用户,最好不要修改root,它的权限是最高的。
# @后面的%表示任意地址都可以登陆,by 后面跟的密码
create user 'admin'@'%' identified by '123456';
select Host, User from user; #查看用户
再次尝试用admin用户进行连接,就成功了!
登陆成功后我们可以进行命令行的输入。
这里可以看到admin这个用户没有权限对mysql的使用,用root这个用户的权限赋予admin这个用户这个权限,这样就可以进行操作了。
mysql -uroot -pgrant select on mysql.* to 'admin'@'%'; #赋予admin用户在数据库mysql的selec权限
现在的admin用户只有select权限,没有创建用户的权限,在创建用户的时候会报错。
/* 赋予admin所有数据库所有表的权限其中 *. 中第一个*表示数据库(.)为表,想当于现在的 admin用户拥有root 的所有权限*/grant all privileges on *.* to 'admin'@'%';