CentOS release 6.6 安装MySQL 5.6.15

MySQL 简介

  • 安装后目录结构mysql

    • mysql.exe:客户端c++

    • mysqld.exe:服务器web

    • my.ini:总配置文件sql

  • 在windows下开户和关闭mysql服务器数据库

    • net start mysqlbootstrap

    • net stop mysqlwindows

  • 登陆和退出mysql客户端安全

    • mysql -u用户名 -p密码 -hIP服务器

    • exit或quit数据结构

 

                                             SQL

  • 解释:结构化查询语言

  • ISO:国际标准化组织

  • ISO定义了不少SQL标准,例如:SQL99

  • 各个数据库厂商须要遵循这个标签!但各个厂商也有本身的方言

  • SQL的分类

    • DDL:数据定义语言

    • DML:数据操做语言

    • DCL:数据控制语言

    • DQL(不在标准中):数据查询语言

DDL:数据定义语言

  • 数据库的操做

    • create database

    • show databases

    • use mydb1

    • alter database

    • drop database

 

  • 表的操做

    • create table

    • show tables

    • desc mytable1

    • drop table

    • alter table

      • add

      • modify

      • change

      • drop

      • rename to

DML:数据操做语言

  • 插入记录

  • 修改记录

  • 删除记录

    • delete

    • truncat

DCL:数据控制语言

  • 建立用户

  • 受权

  • 撤消权限

  • 查看权限

  • 删除用户

DQL:数据查询语言

  • 基本查询

    • 查看整张表

      • select * from 表名

    • 列控制

      • 列运算:select sal * 1.5 from emp

      • 列运算:链接字符串:select concat(‘个人名称是’, ename) from emp

      • 处理NULL值:select sal + IFNULL(comm, 0) from emp

      • select ename 姓名 from emp

      • 去除彻底重复的行:select distinct comm from emp

  • 条件查询

    • 模糊查询

      • 下划线

      • 百分号

  • 排序

    • 降序:desc

    • 升序:asc

  • 聚合函数

    • 数量:count

    • 求最小值:min

    • 求最大值:max

    • 求和:sum

    • 求平均:avg

  • 分组

    • group by

    • having

    • limit

约束

  • 约束保证数据的完整性和一致性

  • 约束分为表级约束和列级约束

    • 对一个数据列创建的约束,列级约束

    • 对多个数据列创建的约束,表级约束

  • 约束类型包括:

    • NOT NULL

    • PRIMARY KEY

    • UNIQUE KEY

    • DEFAULT

    • FOREIGN KEY

中文没法插入解决办法

  • dos 下不支持直接使用utf8;

  • set names gbk,再插入便可。

链接类型

  • 内链接

    • 显示左表及右表符合链接条件的记录

  • 左外链接

    • 显示左表的所有记录及右表符合链接条件的记录

  • 右外链接

    • 显示右表的所有记录及左表符合链接条件的记录

  • 自身链接

    • 同一个数据表对其自身进行链接

 

MySQL常见的扩展方式Scale Up、Scale Out。

MySQL数据库的切分:垂直切分:分库、水平切分:分表。

MySQL存储引擎之InnoDB、MyISAM引擎。

数据库定义了存储信息的结构。以表的方式存储信息。

索引:将表中的某一个或某些字段抽取出来,单独将其组织一个独特的数据结构中,相似一本书的目录;

 

数据库的概述

  • DBMS:关系型数据库管理系统

    • 库管+N个仓库

  • 常见的数据库管理系统

    • MySQL

    • Orcale

    • DB2

    • SQL Server

    • Sybase

经常使用存储引擎介绍;

  • MyISAM :不支持事务;表级锁,崩溃后不保证安全恢复
  • MyISAM :Aria:加强版,崩溃后能够修复
  • InnoDB :XtraDB 支持 行级锁,外键,热备

MySQL属于关系型数据库,关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句

 

在数据库的应用方面,通常又分为两种角色:

  • 一种是应用开发者,在公司里通常被称为“服务器工程师”或“web开发工程师”
  • 一种是数据库管理者,在公司通常被称为“DBA”(DataBase Administrator)或“运维;

数据库的使用方面分为三个层次

  1. 数据库的基本使用
  2. 利用面向对象的思惟使用数据库
  3. 在项目中应用分布式数据库

 

MySQL复制环境

MySQL复制种类  : 

一、标准异步复制

异步复制意味着事务彻底在本地环境中完成,而且不受复制从属自己的影响。完成更改后,主服务器将使用数据修改或实际语句(基于行的复制或基于语句的复制之间的差别会在以后讲)填充二进制日志。此转储线程读取二进制日志并将其发送到从IO线程。从站使用其IO线程将其置于本身的预处理队列(称为中继日志)中。从站使用SQL线程执行从站数据库上的每一个更改。

二、半同步复制

半同步复制意味着从设备和主设备相互通讯以保证事务的正确传输。主设备仅填充binlog并继续其会话,其中一个从设备确认事务已正确放置在从设备的中继日志中。

半同步复制可确保正确复制事务,但不保证明际发生从设备上的提交。

须要注意的是,半同步复制可确保主服务器等待继续处理特定会话中的事务,直到至少有一个从服务器确认接收到事务(或达到超时)。这与异步复制不一样,由于半同步容许额外的数据完整性。

请记住,半同步复制会影响性能,由于它须要等待来自从站的实际ACK的往返。

 

三、组复制

这是MySQL Community Edition 5.7中引入的新概念,而且在MySQL 5.7.17中进行了GA。这是一个用于虚拟同步复制的新插件。

每当在节点上执行事务时,插件都会尝试与其余节点达成共识,而后再将其返回给客户端。 虽然与标准MySQL复制相比,该解决方案是彻底不一样的概念,但它基于使用binlog生成和处理日志事件。

如下是组复制的示例体系结构。

 

注意   :  

标准异步复制不是同步集群。请记住,标准和半同步复制不保证环境服务于同一数据集。使用Percona XtraDB Cluster时,每一个服务器实际上须要分别处理每一个更改。若是不是,则从群集中删除受影响的节点。异步复制不具备此故障安全性,在不一致的状况下,仍然能够接受读操做。

从理论上讲,环境应具备可比性。可是,有许多参数会影响数据传输的效率和一致性。只要使用异步复制,就没法保证事务正确发生。使用者能够经过加强配置的持久性来避免这种状况,但这会带来性能损失。

使用pt - table - checksum工具验证主服务器和从服务器的一致性 。

有复制就不须要备份了

 

MySQL的事务

请求<-->响应 的处理过程

多个操做被当作一个总体对待,要想看一个关系型管理数据库系统是否支持事务就要看关系型数据库系统是否知足ACID测试

  • ACID 事务的一个基本标准
    • A:原子性
    • C:一致性
    • I:隔离性
    • D:持久性

SQL语句对数据库管理经常使用的两种方式:

  • DDL:数据定义语言-主要是用在定义或改变表(TABLE)的结构,数据类型,表之间的连接和约束等初始化工做上,他们大多在创建表时使用,建立表的时候有问题看这里
    • CREATE: 建立
    • ALTER:改变
    • DROP: 删除
    • SHOW: 显示
  • DML:数据操纵语言-这4条命令是用来对数据库里的数据进行操做的语言,修改表的时候有问题看这里
    • INSERT: 添加
    • DELETE: 删除
    • SELECT: 选择
    • UPDATE: 修改

这里通配符有两个须要注意:

  • %:任意长度的任意字符;
  • _:任意单个字符;

MySQL与MariaDB

MariaDB属于插件式存储引擎(存储引擎也称为“表类型”;):存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据须要灵活选择;

MySQL优势有:
1.综合统一
2.高度非过程化
3.面向集合的操做方式
4.以一种语法结构提供多种使用方式
5.语言简洁,易学易用

MySQL 安装

本教程的系统平台:CentOS release 6.6 (Final) 64位。

1、安装编译工具及库文件

[root@localhost ~]# cd /usr/local/src
 

yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

2、 安装cmake 编译器

cmake 版本:cmake-3.1.1。

一、下载地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

$ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

mysql1

二、解压安装包

$ tar zxvf cmake-3.1.1.tar.gz

三、进入安装包目录

$ cd cmake-3.1.1

四、编译安装 

$ ./bootstrap
$ make && make install

3、安装 MySQL

MySQL版本:mysql-5.6.15。

一、下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

$ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

mysql2

二、解压安装包

$ tar zxvf mysql-5.6.15.tar.gz

三、进入安装包目录

$ cd mysql-5.6.15

四、编译安装 

$ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306
$ make && make install

五、查看mysql版本:

$ /usr/local/webserver/mysql/bin/mysql --version

到此,mysql安装完成。

MySQL 配置

一、建立mysql运行使用的用户mysql:

$ /usr/sbin/groupadd mysql
$ /usr/sbin/useradd -g mysql mysql

二、建立binlog和库的存储路径并赋予mysql用户权限

$ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
$ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/

三、建立my.cnf配置文件

将/etc/my.cnf替换为下面内容

$ cat /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /www/data_mysql
log-error = /usr/local/webserver/mysql/mysql_error.log
pid-file = /usr/local/webserver/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
#thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default-tmp-storage-engine=MYISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-slave-updates
log-bin = /usr/local/webserver/mysql/binlog/binlog
binlog-do-db=oa_fb
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
relay-log = /usr/local/webserver/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
loose-innodb-trx=0 
loose-innodb-locks=0 
loose-innodb-lock-waits=0 
loose-innodb-cmp=0 
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0 
loose-innodb-cmpmem=0 
loose-innodb-cmpmem-reset=0 
loose-innodb-buffer-page=0 
loose-innodb-buffer-page-lru=0 
loose-innodb-buffer-pool-stats=0 
loose-innodb-metrics=0 
loose-innodb-ft-default-stopword=0 
loose-innodb-ft-inserted=0 
loose-innodb-ft-deleted=0 
loose-innodb-ft-being-deleted=0 
loose-innodb-ft-config=0 
loose-innodb-ft-index-cache=0 
loose-innodb-ft-index-table=0 
loose-innodb-sys-tables=0 
loose-innodb-sys-tablestats=0 
loose-innodb-sys-indexes=0 
loose-innodb-sys-columns=0 
loose-innodb-sys-fields=0 
loose-innodb-sys-foreign=0 
loose-innodb-sys-foreign-cols=0

slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
long_query_time = 1
[mysqldump]
quick
max_allowed_packet = 32M

四、初始化数据库

$/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --user=mysql

显示以下信息:

Installing MySQL system tables...2015-01-26 20:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK

Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
OK
...

五、建立开机启动脚本

$ cd /usr/local/webserver/mysql/
$ cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
$ chkconfig --add mysqld 
$ chkconfig --level 35 mysqld on

六、启动mysql服务器

$ service mysqld start

mysql4

七、链接 MySQL

$ /usr/local/webserver/mysql/bin/mysql -u root -p

mysql5

修改MySQL用户密码

mysqladmin -u用户名 -p旧密码 password 新密码

或进入mysql命令行

SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');

建立新用户并受权:

grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;

其余命令

  • 启动:service mysqld start
  • 中止:service mysqld stop
  • 重启:service mysqld restart
  • 重载配置:service mysqld reload

 

启动MySQL服务器程序,确认状态

1)启动MySQL服务程序

启动服务并查看状态:

[root@dbsvr1 pub]# service mysql start
Starting MySQL...                                     [肯定]
[root@dbsvr1 pub]# service mysql status
MySQL running (31724)                                 [肯定]

服务器进程为mysqld,监听的默认端口为TCP 3306:

[root@dbsvr1 pub]# netstat -anpt | grep mysql
tcp        0      0 :::3306        :::*       LISTEN      31724/mysqld

2)查看MySQL服务器进程、运行用户

提供链接服务的进程为mysqld,由其父进程mysqld_safe启动。

[root@dbsvr1 pub]# ps -elf | grep mysqld

4 S root     31619     1  0  80   0 -  2834 wait   15:14 pts/0    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid file=/var/lib/mysql/dbsvr1.tarena.com.pid

4 S mysql    31724 31619  0  80   0 - 252496 poll_s 15:14 pts/0   00:00:01 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --user=mysql --log-error=/var/lib/mysql/dbsvr1.tarena.com.err --pid-file=/var/lib/mysql/dbsvr1.tarena.com.pid

数据库的默认存放位置为 /var/lib/mysql:

[root@dbsvr1 pub]# ls /var/lib/mysql/
auto.cnf               ibdata1      mysql               RPM_UPGRADE_HISTORY
dbsvr1.tarena.com.err  ib_logfile0  mysql.sock          RPM_UPGRADE_MARKER-LAST
dbsvr1.tarena.com.pid  ib_logfile1  performance_schema  test

 

参考连接  : 

百度百科 :https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_9326379813681396417%22%7D&n_type=1&p_from=4

相关文章
相关标签/搜索