标签:mysql
一、数据库概述
1、文本数据库缺陷
数据冗余和不一致
数据访问困难
数据孤立
完整性问题:数据状态改变前后,总状态要一致
原子性问题:多个操作看成一个操作,要么同时完成,要么同时不完成
并发访问问题:
安全性问题:只允许访问部分信息如何解决
2、DBMS
1)DBMS:DataBase Management System 数据库管理系统
用户层|视图层:
逻辑层 :完成用户层到视图层转换
物理层:
2)数据模型
层次模型
网状模型
关系模型
库和表
非关系型数据库模型:nosql
3)LAMP:Linux Apache MySql php/perl/python
开源数据库:sqlite,MySQL,PostgreSQL(EnterpriseDB),MariaDB,
二、MySQL
事务:一次多次操作的组合;把多个操作当作一个操作,要么都同时执行,要么都同时不执行
线程池:用来管理连接的管理件
ODBC:Open DataBase Connectivity
ANSI:SQL-86,SQL-89,SQL-92,SQL-99,SQL-2003
C/S架构:mysql/mysqld
2、安装MySQL
四种方式安装mysql:
1)Vendor:操作系统自带的rpm包
2)MySql官方rpm包
3)通用二进制格式
4)源码编译
主流5.5
硬件:内存足够大,硬盘足够快
建议做在硬raid的lvm上
实例:基于通用二进制格式,以5.5为例
注意:通用二进制安装路径必须为/usr/local/mysql
创建系统用户mysql来运行mysqld
1)下载安装包,解压及链接到/usr/local/mysql,
[root@BAIYU_179 ~]# ls anaconda-ks.cfg install.log install.log.syslog mysql-5.5.33-linux2.6-x86_64.tar.gz trash.sh [root@BAIYU_179 ~]# tar xfC mysql-5.5.33-linux2.6-x86_64.tar.gz /usr/local [root@BAIYU_179 ~]# cd /usr/local [root@BAIYU_179 local]# ls bin etc games include lib lib64 libexec mysql-5.5.33-linux2.6-x86_64 sbin share src [root@BAIYU_179 local]# ln -sv mysql-5.5.33-linux2.6-x86_64/ mysql "mysql" -> "mysql-5.5.33-linux2.6-x86_64/"
2)创建系统用户mysql和数据存放目录,并修改/usr/local/mysql/目录下所有文件的属主属组
[root@BAIYU_179 local]# useradd -rs /sbin/nologin mysql [root@BAIYU_179 local]# cd mysql [root@BAIYU_179 mysql]# ll 总用量 200 drwxr-xr-x 2 root root 4096 10月 27 16:59 bin -rw-r--r-- 1 7161 wheel 17987 7月 15 2013 COPYING drwxr-xr-x 3 root root 4096 10月 27 16:59 data drwxr-xr-x 2 root root 4096 10月 27 16:59 docs drwxr-xr-x 3 root root 4096 10月 27 16:59 include -rw-r--r-- 1 7161 wheel 134493 7月 15 2013 INSTALL-BINARY drwxr-xr-x 3 root root 4096 10月 27 16:59 lib drwxr-xr-x 4 root root 4096 10月 27 17:00 man drwxr-xr-x 10 root root 4096 10月 27 17:00 mysql-test -rw-r--r-- 1 7161 wheel 2496 7月 15 2013 README drwxr-xr-x 2 root root 4096 10月 27 17:00 scripts drwxr-xr-x 27 root root 4096 10月 27 16:59 share drwxr-xr-x 4 root root 4096 10月 27 17:00 sql-bench drwxr-xr-x 3 root root 4096 10月 27 17:00 support-files [root@BAIYU_179 mysql]# chown -R mysql.mysql ./ [root@BAIYU_179 mysql]# ll 总用量 200 drwxr-xr-x 2 mysql mysql 4096 10月 27 16:59 bin -rw-r--r-- 1 mysql mysql 17987 7月 15 2013 COPYING drwxr-xr-x 3 mysql mysql 4096 10月 27 16:59 data drwxr-xr-x 2 mysql mysql 4096 10月 27 16:59 docs drwxr-xr-x 3 mysql mysql 4096 10月 27 16:59 include -rw-r--r-- 1 mysql mysql 134493 7月 15 2013 INSTALL-BINARY drwxr-xr-x 3 mysql mysql 4096 10月 27 16:59 lib drwxr-xr-x 4 mysql mysql 4096 10月 27 17:00 man drwxr-xr-x 10 mysql mysql 4096 10月 27 17:00 mysql-test -rw-r--r-- 1 mysql mysql 2496 7月 15 2013 README drwxr-xr-x 2 mysql mysql 4096 10月 27 17:00 scripts drwxr-xr-x 27 mysql mysql 4096 10月 27 16:59 share drwxr-xr-x 4 mysql mysql 4096 10月 27 17:00 sql-bench drwxr-xr-x 3 mysql mysql 4096 10月 27 17:00 support-files [root@BAIYU_179 mysql]# mkdir /data/mydata [root@BAIYU_179 mysql]# chown -R mysql.mysql /data/mydata/ #mysql用户肯定要有这个目录的权限咯
3)初始化mysql并创建mysql服务脚本及配置文件
[root@BAIYU_179 mysql]# scripts/mysql_install_db --datadir=/data/mydata --user=mysql [root@BAIYU_179 mysql]# ls /data/mydata mysql performance_schema test #每个目录(文件不是哦)被视为一个库 [root@BAIYU_179 mysql]# chown -R root . #将mysql目录下的所有文件属主改为root [root@BAIYU_179 mysql]# ll 总用量 200 drwxr-xr-x 2 root mysql 4096 10月 27 16:59 bin -rw-r--r-- 1 root mysql 17987 7月 15 2013 COPYING drwxr-xr-x 3 root mysql 4096 10月 27 16:59 data drwxr-xr-x 2 root mysql 4096 10月 27 16:59 docs drwxr-xr-x 3 root mysql 4096 10月 27 16:59 include -rw-r--r-- 1 root mysql 134493 7月 15 2013 INSTALL-BINARY drwxr-xr-x 3 root mysql 4096 10月 27 16:59 lib drwxr-xr-x 4 root mysql 4096 10月 27 17:00 man drwxr-xr-x 10 root mysql 4096 10月 27 17:00 mysql-test -rw-r--r-- 1 root mysql 2496 7月 15 2013 README drwxr-xr-x 2 root mysql 4096 10月 27 17:00 scripts drwxr-xr-x 27 root mysql 4096 10月 27 16:59 share drwxr-xr-x 4 root mysql 4096 10月 27 17:00 sql-bench drwxr-xr-x 3 root mysql 4096 10月 27 17:00 support-files [root@BAIYU_179 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld #服务脚本 [root@BAIYU_179 mysql]# chkconfig --add mysqld [root@BAIYU_179 mysql]# chkconfig --list mysqld mysqld 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 [root@BAIYU_179 mysql]# \cp support-files/my-large.cnf /etc/my.cnf #配置文件
4)配置mysql配置文件/etc/my.cnf
[root@BAIYU_179 mysql]# grep -Ev ‘^#|^$‘ /etc/my.cnf [client] #应用于所有客户端 port = 3306 socket = /tmp/mysql.sock [mysqld] #应用于服务器端 port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 256M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 4M myisam_sort_buffer_size = 64M thread_cache_size = 8 query_cache_size= 16M thread_concurrency = 2 #线程数,建议cpu核心数的2倍 datadir = /data/mydata #添加这一行定义数据存储目录 log-bin=mysql-bin binlog_format=mixed server-id = 1 [mysqldump] quick max_allowed_packet = 16M [mysql] #只应用于mysql这一种客户端 no-auto-rehash [myisamchk] key_buffer_size = 128M sort_buffer_size = 128M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout
5)启动Mysqld并测试
[root@BAIYU_179 mysql]# service mysqld start Starting MySQL... SUCCESS! [root@BAIYU_179 mysql]# mysql -bash: mysql: command not found [root@BAIYU_179 mysql]# ls /data/mydata BAIYU_179.err ibdata1 ib_logfile1 mysql-bin.000001 performance_schema BAIYU_179.pid ib_logfile0 mysql mysql-bin.index test
发现启动mysql后在数据存储目录生成了很多文件:
存储引擎:(表类型)
mysql是插件式存储引擎
MyISAM
InnoDB(Oracle)-->XtraDB(percona)
标签:mysql
原文地址:http://xiexiaojun.blog.51cto.com/2305291/1709816