码迷,mamicode.com
首页 > 数据库 > 详细

mysql基础理论及安装

时间:2015-11-05 00:50:52      阅读:310      评论:0      收藏:0      [点我收藏+]

标签: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

官网:www.mysql.com

四种方式安装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基础理论及安装

标签:mysql

原文地址:http://xiexiaojun.blog.51cto.com/2305291/1709816

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!