设为首页 收藏本站
查看: 485|回复: 0

[经验分享] mysql基础理论及安装

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-11-5 08:51:03 | 显示全部楼层 |阅读模式
                      

一、数据库概述


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,
1
2
3
4
5
6
7
8
[iyunv@BAIYU_179 ~]# ls
anaconda-ks.cfg  install.log  install.log.syslog  mysql-5.5.33-linux2.6-x86_64.tar.gz  trash.sh
[iyunv@BAIYU_179 ~]# tar xfC mysql-5.5.33-linux2.6-x86_64.tar.gz /usr/local
[iyunv@BAIYU_179 ~]# cd /usr/local
[iyunv@BAIYU_179 local]# ls
bin  etc  games  include  lib  lib64  libexec  mysql-5.5.33-linux2.6-x86_64  sbin  share  src
[iyunv@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/目录下所有文件的属主属组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[iyunv@BAIYU_179 local]# useradd -rs /sbin/nologin mysql
[iyunv@BAIYU_179 local]# cd mysql
[iyunv@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
[iyunv@BAIYU_179 mysql]# chown -R mysql.mysql ./
[iyunv@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
[iyunv@BAIYU_179 mysql]# mkdir /data/mydata
[iyunv@BAIYU_179 mysql]# chown -R mysql.mysql /data/mydata/  #mysql用户肯定要有这个目录的权限咯



3)初始化mysql并创建mysql服务脚本及配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[iyunv@BAIYU_179 mysql]# scripts/mysql_install_db --datadir=/data/mydata --user=mysql
[iyunv@BAIYU_179 mysql]# ls /data/mydata
mysql  performance_schema  test          #每个目录(文件不是哦)被视为一个库
[iyunv@BAIYU_179 mysql]# chown -R root .  #将mysql目录下的所有文件属主改为root
[iyunv@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

[iyunv@BAIYU_179 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  #服务脚本
[iyunv@BAIYU_179 mysql]# chkconfig --add mysqld
[iyunv@BAIYU_179 mysql]# chkconfig --list mysqld
mysqld          0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭
[iyunv@BAIYU_179 mysql]# \cp  support-files/my-large.cnf /etc/my.cnf   #配置文件



4)配置mysql配置文件/etc/my.cnf

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
[iyunv@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并测试
1
2
3
4
5
6
7
[iyunv@BAIYU_179 mysql]# service mysqld start
Starting MySQL... SUCCESS!
[iyunv@BAIYU_179 mysql]# mysql
-bash: mysql: command not found
[iyunv@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)
                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135189-1-1.html 上篇帖子: MYSQL所有的增删改查等等语句,作为程序员的你,够用了 下篇帖子: mysql-proxy读写分离测试 mysql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表