一、数据库基本概念
数据库(DB)
按照数据结构来组织、存储数据的仓库
数据库管理系统(DBMS)
数据库管理系统(Database Management System)是一套操纵和管理数据库的软件,是用于建立、使用和维护数据库
数据库系统(DBS)
数据库
数据库管理系统(及其开发工具)
应用系统
数据库管理员
用户
二、关系数据库
关系数据库
采用关系模型作为数据组织方式。简单地说数据的逻辑结构是一张二维表,由行和列组成。表的每一行为一个元组,每一列为一个属性。
关系的完整性约束
实体完整性
主键不为空(不能重复)
参照完整性(外键)
或者为空,或者等于另一个关系的主码值
用户定义的完整性
用于设置某个属性的取值范围
如果将民族编码和部门编码设置为外键,那么出现的值必须为1 or 2 or NULL。
常见的关系型数据库:
mysql.exe 客户端程序 (用于连接数据库,也推荐使用navicat)
其它工具集
启动服务
通过服务控制面板来控制(services.msc)
net start MySQL
net stop MySQL
mysqladmin -u root -poldpass password newpass
mysqladmin -usimba -p123456 password 123 /*要有权限才可以修改*/
#绑定IPv4和3306端口
bind-address = 0.0.0.0
port = 3306
# 设置mysql的安装目录
basedir=D:/mysql-5.6.13
# 设置mysql数据库的数据的存放目录
datadir=D:/mysql-5.6.13/data
# 允许最大连接数
max_connections=200
——用来建立数据库、数据库对象和定义其列
——CREATE 、DROP 、ALTER 等
——用来控制存取许可、存取权限等;
——GRANT、REVOKE 等;
——查询、插入、删除和修改数据库中的数据;
——SELECT、INSERT、 UPDATE 、DELETE等;
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
create database dbname [数据库选项];
/* 如果数据库名是特殊的如 234 或者保留名称如 database,那么需要使用反引号`` 括起来 */
show create database dbname; /* 创建过程都做了哪些设置 */ alter database dbname character set gbk /* 支持中文 */ create user username identified by '123456' /* 密码用引号括起 */ grant select, insert, update, delete on *.* to username @ '%' identified by '123456' /* *.*表示任意数据库的任意表 '%'表示任意主机 */
#
注:grant 会 在 系统增加一个 user.
grant all privileges on *.* to username@ '%' revoke all privileges on *.* from username@ '%' |
Query OK, 2 rows affected (0.00 sec)
mysql>source /tmp/a.txt;
Query OK, 0 rows affected (0.00 sec)
exit
六、常见错误
1). Can't connect to local MySQL server through socket '/tmp/mysql.sock'
这时候先看 tmp 目录下是否有 mysql.sock 这个文件,如果/tmp下有该文件的话就是权限问题(看是否是 mysql 客户端连接,还是
apache->php 连接),如果没有则 find / -name 'mysql.sock' 看这个文件存在哪个目录,假如是 /var/lib/mysql/mysql.sock,直接
建一个软链接,ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock 。
2).Access denied for user 'zabbix'@'localhost' (using password: YES)
一般是权限或者密码错误问题,grant 一下权限。
参考:
《数据库系统概论》
mysql 5.1 参考手册