01 . Mysql简介及部署
Mysql数据库简介
什么是数据?
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材,数据是信息的表现形式和载体,可以是符号,文字,数字,语音,图像,视频等,数据和信息是不可分离的,数据是信息的表达,信息是数据的内涵,数据本身没有任何意义,数据只有对实体行为产生影响才成为信息。在计算机系统中,数据以二进制信息单元0,1形式表示
什么是数据库?
数据库(Database): 是按照数据结构来组织、存储和管理数据的仓库,给我们提供了一种以关系的方式来存放数据的方法,能够解决文本性存储数据的劣势。
数据库技术构成
数据库系统由硬件部分和软件部分共同构成,硬件主要用于存储数据库中的数据,包括计算机,存储设备等。软件部分则主要包括DBMS,(DB数据库管理系统)支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问技术。
数据库系统主要三个部分
数据库:用于存储数据的地方
数据库管理系统:用于 管理数据库的软件
数据库的应用程序:为了提高数据库系统的处理能力所使用的管理数据库的软件补充。
数据库(database system) 提供了一个存储空间以存储各种数据,可以将数据库 视为一个存储数据的容器。一个数据库可能包含许多文件,一个数据库系统中通常包含许多数据库。
数据库管理系统(database Management System,DBMS) 是用户创建。管理和维护数据库时所用的软件,位于用户与操作系统之间,对数据库进行统一管理,DBMS能定义数据的存储结构,提供数据的操作机制,维护数据库的安全性,完整性和可靠性。
数据库的应用程序:(Database Application) 虽然已经有了DBMS、但是在很多情况下,DBMS无法满足对数据库管理的要求,数据库应用程序的使用可以满足对数据管理的更高要,可以使管理数据更加直观,数据库应用程序负责于DBMS进行通信,访问个和管理DBMS数据中存储的数据,允许用户插入,修改,删除DB的数据。
数据库访问技术:不同的程度设计语言会有各自不同的数据库访问技术,程序语言通过这些技术,执行sql语句,进行数据库管理,主要的数据库访问技术有:
# ODBC:(open database connectivity) 开放数据库互联。技术为访问不同的sql数据库提供了一个共同的接口。
# JDBC:(java data base connectivity)java数据库连接,用于java应用程序连接标准方法。
# ADO.NET:是微软在.NET 框架下开发设计的一组用于 和数据源进行交互的 面向对象 类库。
# PDO:(php data object) 为php访问数据定义了一个轻量级、一致性的接口。它提供了一个数据访问抽象层,
数据库分类
关系型数据库
库中有表,几个表之间有关联的,拥有共同的列,称之为关系型数据库
Oracle # 1521
DB2 # 5000
Mysql,Mariadb # 3306
SQLServer # 1433
非关系型数据库
通常是以Key-value形式存储的,不支持SQL语句,没有表结构,配置简单,低廉学习成本,能很好作为Mysql中间层:
# 1. 键值存储: Redis<6379> Memcached<11211>,因为相比其他数据存储没有数据结构,又工作在内存中,所以性能很高.
# 2. 列式存储: HBase:
# 3. 文档存储: Documentation , MongoDB<27017>
分布式数据库: 通过分片机制进行数据分布,每个节点都能接收客户端请求<去中心化>,并且持有全局元数据的一部分数据.
# Hadoop(HDFS): 适用于大文件存储,Apache公司的产品,java程序编写
# FastDFS(开源软件): 适用于小文件存储(网盘,短视频,images),对于高并发有很好的支持.
E-R模型
# 当前物理的数据库都是按照E-R模型进行设计的
# E表示entry,实体
# R表示relationship,关系
# 一个实体转换为数据库中的一个表
# 关系描述两个实体之间的对应规则(关系),包括
一对一
角色表中的一条数据 对应 员工表中 的一条员工的数据
roles角色表
id | role |
---|---|
1 | ceo |
staffs员工表
id | name | role_id |
---|---|---|
1 | 雷军 | 1 |
一对多
一个班级表的一条数据可以对应学生表中多条数据
id | class |
---|---|
1 | 高三一班 |
2 | 高三二班 |
id | name | class_id |
---|---|---|
1 | youmen | 1 |
2 | alice | 2 |
3 | flying | 2 |
多对一
一个老师可以教授多个班级,一个班级可以有多个老师。
此时,就需要三个表
# 1. 老师表
# 2. 班级表
# 3. 用来表示他们关系的表
这个第三张表就是多对多关系需要的表
teacher表
id | name |
---|---|
1 | 晗哥 |
2 | 西瓜甜 |
class表
id | name |
---|---|
1 | 云计算1810 |
2 | 云计算1809 |
3 | 云计算1808 |
teacher2class表
id | teacher_id | class_id |
---|---|---|
1 | 1 | 1 |
2 | 1 | 3 |
3 | 2 | 1 |
4 | 2 | 2 |
关系点表示被转换为数据库表中的一个列 ,在关系型数据库中一行就是一个对象
RDBMS
RDBMS 指的是关系型数据库管理系统。
RDBMS 是 SQL 的基础,同样也是所有现代数据库系统的基础,比如 微软的 SQL Server和 Microsoft Access, IBM DB2, 甲骨文的Oracle以及开源的 MySQL和PostgreSQL(读作:post - gress - Q - L, 简略念为"postgres") 。
RDBMS 中的数据存储在被称为表(tables)的数据库对象中。
表是相关的数据项的集合,它由列和行组成。
Mysql5.7主要特性
# 更好的性能:对于多核CPU、固态硬盘、锁有着更好的优化,每秒100W QPS已不再是MySQL的追求,下个版本能否上200W QPS才是吾等用户更关心的
# 更好的InnoDB存储引擎
# 更为健壮的复制功能:复制带来了数据完全不丢失的方案,传统金融客户也可以选择使用MySQL数据库。此外,GTID在线平滑升级也变得可能
# 更好的优化器:优化器代码重构的意义将在这个版本及以后的版本中带来巨大的改进,Oracle官方正在解决MySQL之前最大的难题
# 原生JSON类型的支持
# 更好的地理信息服务支持:InnoDB原生支持地理位置类型,支持GeoJSON,GeoHash特性
# 新增sys库:以后这会是DBA访问最频繁的库
QPS
Queries Per Second意思是每秒查询率,是一台服务器每秒能够响应的查询次数,是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准。
SQL介绍
# SQL语言主要用于存取数据,查询数据,更新数据和管理关系数据库系统,由IBM开发,分为四种类型
# DDL语句 数据库定义语言(Create,Alter,Drop,Declare)
# 用于定义或改变表的结构,数据类型,表之间的连接和约束等初始化工作上,他们大多在建表时使用.
# DML语句 数据库操作语言(Select,Delete,Update,Insert) # 用来对数据库里的数据进行操作的语言.
# DCL语句 数据库控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
# 用来设置或更改数据库或角色权限的语句,只有sysadmin,dbcreator,db_owner等人员才能执行.
# DQL语句 数据库查询语言(select)
字符集
查看目前mysql所支持的所有字符集
SHOW CHARACTER SET;
SHOW CHARACTER SET LIKE 'latin%';
查看默认字符集
show variables like 'collation_%';
show variables like 'character_set_%';
# 查看具体某个数据库的字符集
use db_name
SELECT @@character_set_database, @@collation_database;
# 或者
use db_name
status
配置文件设置字符集
[client]
# 其他客户端,比如 pymysql
default-character-set=utf8
[mysql]
# mysql 客户端
default-character-set=utf8
[mysqld]
# 服务器端的字符集
character-set-server = utf8
# 服务器端的排序规则
collation-server = utf8_unicode_ci
排序规则
给定的字符集始终至少有一个排序规则,大多数字符集都有几个排序规则。
该
SHOW COLLATION
语句显示所有可用的排序规则。同样支持
LIKE
和WHERE
子句
SHOW COLLATION WHERE Charset = 'latin1';
每个字符集都有一个默认排序规则。
latin1
和utf8
分别是latin1_swedish_ci
和utf8_general_ci
。
后缀含义
后缀 | 含义 |
---|---|
_ci |
不区分大小写 |
_cs |
区分大小写 |
如果仅指定字符集(例如
latin1
)但不指定排序规则,则与说明相同。要查看适用于当前会话的字符集和排序规则系统变量的值,请使用以下语句:
mysql> SELECT * FROM performance_schema.session_variables
WHERE VARIABLE_NAME IN (
'character_set_client', 'character_set_connection',
'character_set_results', 'collation_connection'
) ORDER BY VARIABLE_NAME;
MysqlRPM安装
#!/usr/bin/env bash
# Author: ZhouJian
# Mail: 18621048481@163.com
# Time: 2019-9-3
# Describe: CentOS 7 Install Mysql.rpm Script
clear
echo -ne "\\033[0;33m"
cat<<EOT
_oo0oo_
088888880
88" . "88
(| -_- |)
0\\ = /0
___/'---'\\___
.' \\\\\\\\| |// '.
/ \\\\\\\\||| : |||// \\\\
/_ ||||| -:- |||||- \\\\
| | \\\\\\\\\\\\ - /// | |
| \\_| ''\\---/'' |_/ |
\\ .-\\__ '-' __/-. /
___'. .' /--.--\\ '. .'___
."" '< '.___\\_<|>_/___.' >' "".
| | : '- \\'.;'\\ _ /';.'/ - ' : | |
\\ \\ '_. \\_ __\\ /__ _/ .-' / /
====='-.____'.___ \\_____/___.-'____.-'=====
'=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
建议系统 CentOS7
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
# PS:请尽量使用纯净的CentOS7系统,我们会在服务器安装Mysql5.7,
# 将mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar包和脚本放到root目录下执行即可,密码为ZHOUjian.20
EOT
echo -ne "\\033[m"
init_security() {
systemctl stop firewalld
systemctl disable firewalld &>/dev/null
setenforce 0
sed -i '/^SELINUX=/ s/enforcing/disabled/' /etc/selinux/config
sed -i '/^GSSAPIAu/ s/yes/no/' /etc/ssh/sshd_config
sed -i '/^#UseDNS/ {s/^#//;s/yes/no/}' /etc/ssh/sshd_config
systemctl enable sshd crond &> /dev/null
echo -e "\033[32m [安全配置] ==> OK \033[0m"
}
init_yumsource() {
if [ ! -d /etc/yum.repos.d/backup ];then
mkdir /etc/yum.repos.d/backup
fi
mv /etc/yum.repos.d/* /etc/yum.repos.d/backup 2>/dev/null
if ! ping -c2 www.baidu.com &>/dev/null
then
echo "您无法上外网,不能配置yum源"
exit
fi
curl -o /etc/yum.repos.d/163.repo http://mirrors.163.com/.help/CentOS7-Base-163.repo
curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
timedatectl set-timezone Asia/Shanghai
echo "nameserver 114.114.114.114" > /etc/resolv.conf
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
chattr +i /etc/resolv.conf
echo -e "\033[32m [YUM Source] ==> OK \033[0m"
}
init_mysql() {
rpm -e mariadb-libs --nodeps
rm -rf /var/lib/mysql
rm -rf /etc/my.cnf
tar xvf /root/mysql-5.7.23-1.el7.x86_64.rpm-bundle.tar -C /usr/local/
cd /usr/local
rpm -ivh mysql-community-server-5.7.23-1.el7.x86_64.rpm \
mysql-community-client-5.7.23-1.el7.x86_64.rpm \
mysql-community-common-5.7.23-1.el7.x86_64.rpm \
mysql-community-libs-5.7.23-1.el7.x86_64.rpm
rm -rf mysql-community-*
}
changepass() {
sed -i '/\[mysqld]/ a skip-grant-tables' /etc/my.cnf
systemctl restart mysqld
mysql <<EOF
update mysql.user set authentication_string='' where user='root' and Host='localhost';
flush privileges;
EOF
sed -i '/skip-grant/d' /etc/my.cnf
systemctl restart mysqld
yum -y install expect
expect <<-EOF
spawn mysqladmin -uroot -p password "ZHOUjian.20"
expect {
"password" { send "\r" }
}
expect eof
EOF
systemctl restart mysqld
}
main() {
init_hostname
init_security
init_yumsource
init_mysql
changepass
}
main
修改Mysql密码
# 修改Mysql密码下面有三种办法
# 1.刚安装好的mysql,可以从/var/log/mysqld.log获取临时密码
grep "password" /var/log/mysqld.log
[root@mysql ~]# mysql -uroot -p
Enter password:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'ZHOUjian.22';
# 2.mysqladmin -uroot -p password "Baidu.123.com"
Enter password:
# 3.实验环境不知道root密码操作方法如下
sed -i '/\[mysqld]/ a skip-grant-tables' /etc/my.cnf
systemctl restart mysqld
mysql <<EOF
update mysql.user set authentication_string='' where user='root' and Host='localhost';
flush privileges;
EOF
sed -i '/skip-grant/d' /etc/my.cnf
systemctl restart mysqld
mysqladmin -uroot -p password "ZHOUjian.20"
Enter password: # 此处回车一下即可
# 4.mariadb修改密码
use mysql
UPDATE user SET password=password('ZHOUjian.20') WHERE user='root';
MariaDB [mysql]> flush privileges;
# 如果嫌登陆Mysql输入密码麻烦,可以使用以下办法,只需要mysql就可以进入数据库
vim /etc/my.cnf
[client]
password=admin
user=root
systemctl restart mysqld Or mariadb
修改用户密码
ALTER USER
# 基本使用
ALTER USER shark@'localhost' IDENTIFIED BY '123456';
# 修改当前登录用户
ALTER USER USER() IDENTIFIED BY '123456';
# 使密码过期
ALTER USER shark@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE;
# 使密码从不过期
ALTER USER shark@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
# 按默认设置过期时间
ALTER USER shark@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE DEFAULT;
# 指定过期间隔
ALTER USER shark@'localhost' IDENTIFIED BY '123456' PASSWORD EXPIRE INTERVAL 90 DAY;
Mysql8.0修改密码
# 1. 需要先创建新的用户
CREATE USER '你的用户名'@'localhost' IDENTIFIED BY '你的密码';
# 2. 把刚刚创建的数据库的管理权限给予刚刚创建的MySQL用户
GRANT ALL PRIVILEGES ON 你的数据库名.* TO '你的用户名'@'localhost';
# 3. 最后别忘了刷新权限,使用设置及时生效
FLUSH PRIVILEGES;
Mysql.tar包方式安装安装
# 安装源码Mysql
#!/usr/bin/env bash
# Author: ZhouJian
# Mail: 18621048481@163.com
# Time: 2019-9-3
# Describe: CentOS 7 Install Mysql.tar Script # 此处为编译好的tar包,具体编译有时间再亲测一遍
Deplay(){
rpm -e mariadb-libs --nodeps
setenforce 0
systemctl stop firewalld
systemctl enable firewalld
sed -i '/^SELINUX=/ s/enforcing/disabled' /etc/ssh/sshd_config
sed -i '/^GSSAPIAu/ s/yes/no/' /etc/ssh/sshd_config
sed -i '/^#UseDNS/ {s/^#//;s/yes/no}' /etc/ssh/sshd_config
id mysql > /dev/null
if [ $? -eq 0 ];then
echo "mysql user exist"
else
groupadd mysql
useradd -M -s /sbin/nologin mysql -g mysql
fi
if [ ! -d /usr/local/mysqld ];then
tar xf mysql-5.7.26-bin.tar.xz -C /usr/local/
chown mysql.mysql /usr/local/mysqld/ -R
fi
echo "export PATH=$PATH:/usr/local/mysqld/mysql/bin" >> /etc/profile
source /etc/profile
cat > /etc/my.cnf <<EOF
[mysqld]
basedir = /usr/local/mysqld/mysql
datadir = /usr/local/mysqld/data
tmpdir = /usr/local/mysqld/tmp
socket = /usr/local/mysqld/tmp/mysql.sock
pid_file = /usr/local/mysqld/tmp/mysqld.pid
log_error = /usr/local/mysqld/log/mysql_error.log
slow_query_log_file = /usr/local/mysqld/log/slow_warn.log
user = mysql
port = 3306
bind-address = 0.0.0.0
character-set-server = utf8
default_storage_engine = InnoDB
EOF
ln -s /usr/local/mysqld/mysql/support-files/mysql.server /usr/bin/mysqldctl
mysqldctl start
ln -s /usr/local/mysqld/tmp/mysql.sock /tmp/mysql.sock
mysqldctl restart
sed -i '/\[mysqld]/ a skip-grant-tables' /etc/my.cnf
mysqldctl restart
mysql <<EOF
update mysql.user set authentication_string='' where user='root' and Host='localhost';
flush privileges;
EOF
sed -i '/skip-grant/d' /etc/my.cnf
mysqldctl restart
yum -y install expect
expect <<-EOF
spawn mysqladmin -uroot -p password "ZHOUjian.20"
expect {
"password" { send "\r" }
}
expect eof
EOF
mysqldctl restart
}
Deplay
Mysql源码部署
卸载Mysql冲突包并安装依赖包
rpm -e --nodeps mariadb-libs
yum -y install gcc gcc-c++ ncurses ncurses-devel cmake bison bison-devel
# cmake:
# 由于从 MySQL5.5 版本开始弃用了常规的 configure 编译方法,所以需要 CMake 编译器,用于设置 mysql 的编译参数。如:安装目录、数据存放目录、字符编码、排序规则等。
# Boost:
# 从 MySQL 5.7.5 开始 Boost 库是必需的,mysql 源码中用到了 C++的 Boost 库,要求必须安装 boost1.59.0 或以上版本, 这个选择源码安装
# GCC:
# 是 Linux 下的 C 语言编译工具,mysql 源码编译完全由 C 和 C++编写,要求必须安装GCC
# bison:
# Linux 下 C/C++语法分析器
# ncurses:
# 字符终端处理库
下载源码
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.25.tar.gz
创建目录用户
useradd -M -s /sbin/nologin mysql
# -M 不创建用户的家目录
# -s 指定一个不能登录的 shell
# 创建安装目录并授权
mkdir -p /mysql/data
chown -R mysql:mysql /usr/local/mysql
chown -R mysql.mysql /mysql/data
chmod 750 /mysql/data
解压和预编译
tar xzf boost_1_59_0.tar.gz
tar xzf mysql-5.7.25.tar.gz
cd mysql-5.7.25
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_DATADIR=/mysql/data \
-DWITH_BOOST=../boost_1_59_0 \
-DSYSCONFDIR=/etc \
-DENABLED_LOCAL_INFILE=1 \
-DENABLE_DTRACE=0 \
-DDEFAULT_CHARSET=utf8mb4 \
-DDEFAULT_COLLATION=utf8mb4_general_ci \
-DWITH_EMBEDDED_SERVER=1
# 编译安装
make -j $(grep processor /proc/cpuinfo | wc -l)
make install
添加环境变量
echo -e '\n\nexport PATH=/usr/local/mysql/bin:$PATH\n' >> /etc/profile && source /etc/profile
添加Mysql服务到systemd
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 授予可执行的权限
chmod +x /etc/init.d/mysqld
# 设置开机自启动
systemctl enable mysqld
修改配置文件
[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
################ basic settings ################
bind-address = 0.0.0.0
pid-file = /var/run/mysql.pid
user = mysql
character_set_server = utf8mb4
collation-server = utf8mb4_unicode_ci
# 如果是 OFF 或(0),mysqld 在检查客户端连接时解析主机名。
# 如果是 ON 或(1),mysqld只使用 IP;
skip_name_resolve = 1
max_allowed_packet = 16777216
# 允许的最大同时客户端连接数。默认情况下,这是151
max_connections = 2000
# 运行错误连接后尝试的次数,默认 100
max_connect_errors = 1000
explicit_defaults_for_timestamp = 1
join_buffer_size = 134217728
# 交互式客户端连接后,没有任何操作的情况下,继续保持连接状态的秒数
interactive_timeout = 1800
# 服务器在关闭之前等待非交互式连接上的活动的秒数。
wait_timeout = 1800
read_buffer_size = 16777216
read_rnd_buffer_size = 33554432
sort_buffer_size = 33554432
key_buffer_size = 256M
transaction_isolation = READ-COMMITTED
############ log settings ############
log_error=/tmp/mysqld.log
expire_logs_days = 30
slow_query_log = 1
long_query_time = 2
# 在写入慢查询日志的语句中包含慢速管理语句
log_slow_admin_statements = 1
# 检查少于此行数的查询结果不会记录到慢查询日志中。
min_examined_row_limit = 100
########### innodb settings ##########
innodb_buffer_pool_size = 1G
innodb_sort_buffer_size = 27108864
innodb_buffer_pool_load_at_startup = 1
innodb_buffer_pool_dump_at_shutdown = 1
innodb_lock_wait_timeout = 5
innodb_flush_method = O_DIRECT
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_thread_concurrency = 8
innodb_flush_neighbors = 1
innodb_purge_threads = 4
innodb_large_prefix = 1
innodb_print_all_deadlocks = 1
innodb_strict_mode = 1
innodb_file_per_table = ON
innodb_log_file_size = 500M
innodb_log_buffer_size = 20M
innodb_log_files_in_group = 3
innodb_flush_log_at_trx_commit=2
初始化数据库
mysqld --initialize --user=mysql
--initialize-insecur
# 使用空密码。你应该在生产中及时修改密码。
# 或者使用 --initialize
# 这样的话,会为root用户生成一个随机的密码。这个随机密码可能会被输出到初始化过程中,也有可能输出到错误日志中。
初始化服务
systemctl start mysql
# 因为使用了--initialize,所以如果登录不知道密码可以查看服务器日志
mysql -u root -p
# 使用ALTER语句修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
# 登录数据库
mysql -uroot -skip-password
# 使用ALTER语句修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password';
授权root用户才能本地访问数据库
# 登录到 `mysql` 数据库,执行如下语句进行授权。
CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password';
CREATE USER 'root'@'::1' IDENTIFIED BY 'root-password';
# 上面的这两条语句也可以放在一个普通文件中,初始化的时候使用 `--init-file` 选项来完成。
# 例如: `--init-file=/path/mysql-init.txt`
将Mysql动态链接库共享至系统链接库
#一般MySQL数据库还会被类似于PHP等服务调用,所以我们需要将MySQL编译后的lib库文件添加至当
# 前Linux主机链接库/etc/ld.so.conf.d/ 下,这样MySQL服务就可以被其它服务调用了。
# ldconfig -v|grep mysql
# echo "/usr/local/mysql/lib" > /etc/ld.so.conf.d/mysql.conf
# ldconfig -v |grep mysql
ldconfig: 无法对 /libx32 进行 stat 操作: 没有那个文件或目录
ldconfig: 多次给出路径“/usr/lib”
ldconfig: 多次给出路径“/usr/lib64”
ldconfig: 无法对 /usr/libx32 进行 stat 操作: 没有那个文件或目录
/usr/local/mysql/lib:
libmysqlclient.so.20 -> libmysqlclient.so.20.3.10
01 . Mysql简介及部署的更多相关文章
- 01 . Redis简介及部署主从复制
简介 Remote Dictionary Server, 翻译为远程字典服务, Redis是一个完全开源的基于Key-Value的NoSQL存储系统,他是一个使用ANSIC语言编写的,遵守BSD协议, ...
- 01 . MongoDB简介及部署配置
简介 什么是MongoDB? MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性能. MongoDB 旨在为WEB应用 ...
- 01 . RabbitMQ简介及部署
RabbitMQ简介 MQ全称为Message Queue, 消息队列(MQ)是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链接它 ...
- 01 . Memcached简介及部署
Memcached简介 memcached是一个自由开源,高性能,分布式内存对象存储系统 基于内存的key-valued存储,用来存储小块的任意数据(字符串,对象) 他是一个简洁的key-value存 ...
- 01 . Tomcat简介及部署
Tomcat简介 Tomcat背景 tomcat就是常用的的中间件之一,tomcat本身是一个容器,专门用来运行java程序,java语言开发的网页.jsp就应该运行于tomcat中.而tomcat本 ...
- 01 . Nginx简介及部署
Nginx简介 Nginx(发音同engine x)是一个异步框架的 Web 服务器,也可以用作反向代理,负载平衡器 和 HTTP 缓存.该软件由 Igor Sysoev 创建,并于2004年首次公开 ...
- 01: MySql简介
MySQL其他篇 目录: 参考网站 1.1 数据库介绍 1.2 视图 1.3 触发器 1.4 事物 1.1 数据库介绍返回顶部 1.什么是数据库? 1. 数据库(Database)是按照数据结构来组织 ...
- MySQL简介及安装
一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...
- 01 mysql 基础一 (进阶)
mysql基础一 1.认识mysql与创建用户 01 Mysql简介 Mysql是最流行的关系型数据库管理系统之一,由瑞典MySQLAB公司开发,目前属于Oracle公司. MySQL是一种关联数据库 ...
随机推荐
- 细说 PEP 468: Preserving Keyword Argument Order
细说 PEP 468: Preserving Keyword Argument Order Python 3.6.0 版本对字典做了优化,新的字典速度更快,占用内存更少,非常神奇.从网上找了资料来看, ...
- 自动化运维工具Ansible之Tests测验详解
Ansible Tests 详解与使用案例 主机规划 添加用户账号 说明: 1. 运维人员使用的登录账号: 2. 所有的业务都放在 /app/ 下「yun用户的家目录」,避免业务数据乱放: 3. 该用 ...
- Gym 101170A Arranging Hat dp
Arranging Hat 题目大意: 给你n,m n个m位的数,保证m位,问要是n个按照从小到大排序,求改变最少个数字,使得这n个按照不递增排序,求最后排序的结果. //dp[i][j] 表示前i个 ...
- Java IO流(二)
目录 字节缓冲流 概述 BufferedOutputStream类 继承父类的共性成员方法 构造方法 BufferedInputStream类 继承自父类的方法: 构造方法 文件复制练习(增强版 使用 ...
- XSS检测总结
XSS漏洞介绍 跨站脚本XSS是一种针对网站应用程序的安全漏洞攻击技术.恶意攻击者往web页面插入恶意的Script代码,当用于浏览该页时,嵌入web中的恶意代码就会被执行,从而达到恶意攻击用 ...
- .NET分离exe和dll在不同的目录让你的程序更整洁
1.引言 在一个项目开发中一般都是把引用的dll放在根目录下,随着项目的日益增大,根目录下的dll文件就会越来越多,合理规划这些dll的存放地址,可以使整个项目更加的规范与美观.这篇文章就为大家介绍关 ...
- 【hdu1024】简单dp
http://acm.hdu.edu.cn/showproblem.php?pid=1024 最大m字段和,题目就不多说了,经典dp 这题坑爹...首先不说明m的范围(n<=1000000),还 ...
- [hdu5270]按位统计,容斥,归并
题意:给两个序列[a, a + n), [b, b + n),求所有数(ai + bj)的异或和,i,j∈[0,n). 思路:这个题思路比较巧妙,不难但是难想到.BC上的题解讲得非常清楚了,我就直接c ...
- 横向滚动div
<div id="shelf"> <div class="books"><div> <div class=" ...
- 3.6 Go String型
1. Go String型 Unicode是一种字符集,code point UTF8是unicode的存储实现,转换为字节序列的规则 go的rune类型 可以取出字符串里的unicode 字符串是一 ...