安装后目录结构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
MySQL属于关系型数据库,关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。
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工具验证主服务器和从服务器的一致性 。
有复制就不须要备份了
请求<-->响应 的处理过程
多个操做被当作一个总体对待,要想看一个关系型管理数据库系统是否支持事务就要看关系型数据库系统是否知足ACID测试
MariaDB属于插件式存储引擎(存储引擎也称为“表类型”;):存储管理器有多种实现版本,彼此间的功能和特性可能略有区别;用户可根据须要灵活选择;
MySQL优势有: 1.综合统一 2.高度非过程化 3.面向集合的操做方式 4.以一种语法结构提供多种使用方式 5.语言简洁,易学易用
本教程的系统平台:CentOS release 6.6 (Final) 64位。
[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
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
二、解压安装包
$ tar zxvf cmake-3.1.1.tar.gz
三、进入安装包目录
$ cd cmake-3.1.1
四、编译安装
$ ./bootstrap $ make && make install
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
二、解压安装包
$ 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:
$ /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
七、链接 MySQL
$ /usr/local/webserver/mysql/bin/mysql -u root -p
mysqladmin -u用户名 -p旧密码 password 新密码
或进入mysql命令行
SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
建立新用户并受权:
grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
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