赞
踩
1、什么是数据库
数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
当今世界是一个充满着数据的互联网世界,充斥着大量的数据。即这个互联网世界就是数据世界。
数据的来源有很多,比如出行记录、消费记录、浏览的网页、发送的消息等等。除了文本类型的数据,图像、音乐、声音都是数据。
2、数据库的分类
. 关系型数据库
关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上
非关系型数据库
NoSQL(NoSQL = Not Only SQL ),意思是“不仅仅是 SQL”,是非关系型数据库的总称
3、数据库的代表产品
1. 关系型数据库 Oracle MySQL Microsoft SQL Server PostgreSQL IBM DB2 Microsoft Access SQLite
2. 非关系型数据库 MongoDB Redis Cassandra Neo4j
MySQL是开源的,不需要支付额外的费用
2. 支持大型系统,是可以处理拥有上千万条记录的大型数据库
3. 支持多线程,充分利用CPU资源
4. 使用标准的SQL数据语言形式
5. 跨平台,支持多个操作系统,例如:Windows、Mac OS、Linux等
支持多种语言,常见的编码如中文的GB 2312、BIG5,日文的shift_JIS等都可以用作数据表名和数据列名;
7. 为多种编程语言提供了API。这些编程语言包括C、C++、Python、java、Perl、PHP、eiffel、Ruby、tcl等;
8. 存储数据量较大,32位系统表文件最大可支持4GB,64位系统表文件最大可支持8TB;
9. 可以定制,采用了GPL协议,通过修改源码来开发自己的MySQL系统;
10. 支持多种存储引擎;例如:MyISAM、InnoDB等;
安装:RPM
rpm安装MySQL5.7.37
rpm包安装MySQL-5.7.37
rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm #服务器和客户端的通用文件 rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm #数据库客户端应用程序的关系库rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm #数据库客户端应用程序和工具rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm #数据库服务器和相关工具systemctl start mysqld
rpm -e mariadb-libs --nodeps
rpm -ivh mysql-community-common-5.7.37-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-client-5.7.37-1.el7.x86_64.rpm rpm -ivh mysql-community-server-5.7.37-1.el7.x86_64.rpm systemctl start mysqld
yum安装mariadb
本地yum仓库或网络yum
yum -y install mariadb mariadb-server mariadb客户端 mariadb-server服务器
systemctl restart mariadb
进入mariadb mysql
源码安装MySQL5.7.37
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
rpm -qa | grep mysql
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs 使用yum删除会将mariadb的依赖关系一并删除
rpm -qa | grep mariadb
yum install -y cmake make gcc gcc-c++ openssl openssl-devel ncurses ncurses-devel bison bison-devel
tar -zxf mysql-boost-5.7.37.tar.gz -C /usr/src/
cd /usr/src/mysql-5.7.37/
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data - DSYSCONFDIR=/usr/local/mysql/etc -DWITH_INNOBASE_STORAGE_ENGINE=ON - DWITH_MYISAM_STORAGE_ENGINE=ON -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -
DENABLED_LOCAL_INFILE=ON -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/usr/local/mysql/tmp/mysql.sock -
DWITH_INNODB_MEMCACHED=ON -DWITH_BOOST=boost/boost_1_59_0
make && make install
初始化数据库
groupadd mysql
useradd -r -g mysql -s /bin/false mysql cd /usr/local/mysql
mkdir -p /usr/local/mysql/data mkdir -p /usr/local/mysql/etc mkdir -p /usr/local/mysql/tmp mkdir -p /usr/local/mysql/logs
chown -R mysql:mysql /usr/local/mysql vim /usr/local/mysql/etc/my.cnf
[client] #客户端设置
port=3306 # 服 务 器 监 听 端 口 , 默 认 为 3306 socket=/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径,默认/tmp/mysql.sock
[mysqld] #服务端设置
## 一般配置选项
port=3306 #服务器监听端口,默认为3306 basedir=/usr/local/mysql #MySQL安装根目录
datadir=/usr/local/mysql/data #MySQL数据文件目录socket=/usr/local/mysql/tmp/mysql.sock #Unix套接字文件路径,默认/tmp/mysql.sock pid-file=/usr/local/mysql/tmp/mysql.pid #服务进程pid文件路径character_set_server=utf8 #默认字符集
default_storage_engine=InnoDB #默认InnoDB存储引擎
user=mysql
## 连接配置选项
max_connections=200 #最大并发连接数
table_open_cache=400 #表打开缓存大小,默认2000
open_files_limit=1000 #打开文件数限制,默认5000 max_connect_errors=200 #最大连接失败数,默认100 back_log=100 #请求连接队列数connect_timeout=20 #连接超时时间,默认10秒
interactive_timeout=1200 #交互式超时时间,默认28800秒
wait_timeout=600 #非交互超时时间,默认28800秒
net_read_timeout=30 #读取超时时间,默认30秒
net_write_timeout=60 #写入超时时间,默认60秒max_allowed_packet=8M #最大传输数据字节,默认4M thread_cache_size=10 #线程缓冲区(池)大小
thread_stack=256K #线程栈大小,32位平台196608、64位平台262144
## 临时内存配置选项
tmpdir=/tmp #临时目录路径
tmp_table_size=64M # 临 时 表 大 小 , 默 认 16M max_heap_table_size=64M #最大内存表大小,默认16M sort_buffer_size=1M #排序缓冲区大小,默认256K
join_buffer_size=1M #join缓冲区大小,默认256K
## Innodb配置选项
#innodb_thread_concurrency=0 #InnoDB线程并发数
innodb_io_capacity=200 #IO容量,可用于InnoDB后台任务的每秒I/O操作数(IOPS), innodb_io_capacity_max=400 #IO最大容量,InnoDB在这种情况下由后台任务执行的最大IOPS数innodb_lock_wait_timeout=50 #InnoDB引擎锁等待超时时间,默认50(单位:秒)
innodb_buffer_pool_size=512M #InnoDB 缓 冲 池 大 小 , 默 认 128M innodb_buffer_pool_instances=4 #InnoDB缓冲池划分区域数innodb_max_dirty_pages_pct=75 #缓冲池最大允许脏页比例,默认为75 innodb_flush_method=O_DIRECT # 日 志 刷 新 方 法 , 默 认 为 fdatasync innodb_flush_log_at_trx_commit=2 # 事 务 日 志 刷 新 方 式 , 默 认 为 0 transaction_isolation=REPEATABLE-READ #事务隔离级别,默认REPEATABLE-READ
innodb_data_home_dir=/usr/local/mysql/data #表空间文件路径,默认保存在MySQL的datadir中
innodb_data_file_path=ibdata1:128M:autoextend #表空间文件大小
innodb_file_per_table=ON #每表独立表空间
innodb_log_group_home_dir=/usr/local/mysql/data #redoLog文件目录,默认保存在MySQL的datadir中
innodb_log_files_in_group=2 #日志组中的日志文件数,默认为2
innodb_log_file_size=128M #日志文件大小,默认为48MB
innodb_log_buffer_size=32M #日志缓冲区大小,默认为16MB
## MyISAM配置选项
key_buffer_size=32M #索引缓冲区大小,默认8M
read_buffer_size=4M #顺序读缓区冲大小,默认128K
read_rnd_buffer_size=4M #随机读缓冲区大小,默认256K bulk_insert_buffer_size=8M # 块 插 入 缓 冲 区 大 小 , 默 认 8M myisam_sort_buffer_size=8M #MyISAM排序缓冲大小,默认8M #myisam_max_sort_file_size=1G #MyISAM排序最大临时大小
myisam_repair_threads=1 #MyISAM修复线程
skip-external-locking #跳过外部锁定,启用文件锁会影响性能
## 日志配置选项
log_output=FILE #日志输出目标,TABLE(输出到表)、FILE(输出到文件)、NONE(不输出), 可选择一个或多个以逗>号分隔
log_error=/usr/local/mysql/logs/error.log #错误日志存放路径
log_error_verbosity=1 #错误日志过滤,允许的值为1(仅错误),2(错误和警告),3(错误、警告和注 释),默认值为3。
log_timestamps=SYSTEM #错误日志消息格式,日志中显示时间戳的时区,UTC(默认值)和
SYSTEM(本地系统时区)
general_log=ON #开启查询日志,一般选择不开启,因为查询日志记录很详细,会增大磁盘IO开销, 影响性能
general_log_file=/usr/local/mysql/logs/general.log #通用查询日志存放路径
## 慢查询日志配置选项
slow_query_log=ON #开启慢查询日志slow_query_log_file=/usr/local/mysql/logs/slowq.log #慢查询日志存放路径long_query_time=2 #慢查询时间,默认10(单位:秒)
min_examined_row_limit=100 #最小检查行限制,检索的行数必须达到此值才可被记为慢查询log_slow_admin_statements=ON #记录慢查询管理语句log_queries_not_using_indexes=ON #记录查询未使用索引语句log_throttle_queries_not_using_indexes=5 #记录未使用索引速率限制,默认为0不限制
log_slow_slave_statements=ON #记录从库复制的慢查询,作为从库时生效,从库复制中如果有慢查询也将被 记录
## 复制配置选项
server-id=1 #MySQL服务唯一标识
log-bin=mysql-bin #开启二进制日志,默认位置是datadir数据目录
log-bin-index=mysql-bin.index #binlog索引文件
binlog_format=MIXED #binlog日志格式,分三种:STATEMENT、ROW或MIXED,MySQL 5.7.7之前默认为STATEMENT,之后默认为ROW
binlog_cache_size=1M #binlog缓存大小,默认32KB
max_binlog_cache_size=1G #binlog最大缓存大小,推荐最大值为4GB
max_binlog_size=256M #binlog最大文件大小,最小值为4096字节,最大值和默认值为1GB expire_logs_days=7 #binlog过期天数,默认为0不自动删除
log_slave_updates=ON #binlog级联复制
sync_binlog=1 #binlog同步频率,0为禁用同步(最佳性能,但可能丢失事务),为1开启同步(影 响性能,但最安全不会丢失任何事务),为N操作N次事务后同步1次
relay_log=relay-bin #relaylog文件路径,默认位置是datadir数据目录
relay_log_index=relay-log.index #relaylog索引文件
max_relay_log_size=256M #relaylog最大文件大小
relay_log_purge=ON #中继日志自动清除,默认值为1(ON)
relay_log_recovery=ON #中继日志自动恢复
auto_increment_offset=1 #自增值偏移量auto_increment_increment=1 #自增值自增量slave_net_timeout=60 #从机连接超时时间
replicate-wild-ignore-table=mysql.% #复制时忽略的数据库表,告诉从线程不要复制到与给定通配符模式匹配的 表
skip-slave-start #跳过Slave启动,Slave复制进程不随MySQL启动而启动
## 其他配置选项
#memlock=ON #开启内存锁,此选项生效需系统支持mlockall()调用,将mysqld进程锁定在内存 中,防止遇到操作系统导致mysqld交换到磁盘的问题
[mysqldump] #mysqldump数据库备份工具
quick #强制mysqldump从服务器查询取得记录直接输出,而不是取得所有记录后将它们缓存到 内存中
max_allowed_packet=16M #最大传输数据字节,使用mysqldump工具备份数据库时,某表过大会导致备 份失败,需要增大该值(大>于表大小即可)
[myisamchk] #使用myisamchk实用程序可以用来获得有关你的数据库表的统计信息或检查、修复、 优化他们
key_buffer_size=32M #索引缓冲区大小myisam_sort_buffer_size=8M #排序缓冲区大小read_buffer_size=4M #读取缓区冲大小
write_buffer_size=4M #写入缓冲区大小
初始化 bin/mysqld --defaults-file=/usr/local/mysql/etc/my.cnf --initialize --user=mysql
配置环境变量
vi /etc/profile
在文件末尾加入下面代码,:wq保存退出(无权限可:q!强制退出,换root账户重来)
export MYSQL_HOME=/usr/local/mysql export PATH=$MYSQL_HOME/bin:$PATH 使环境变量即时生效
source /etc/profile
复制配置文件到系统服务配置 cp support-files/mysql.server /etc/init.d/mysql
重新加载系统服务配置 systemctl daemon-reload
启动mysql服务 systemctl start mysql
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。