1. 简介
1.数据库的好处:
1.1 可以持久化数据到本地;
1.2 结构化查询
2.常见概念
行业趋势:https://db-engines.com/en/ranking
DB:数据库,存储数据的容器;
DBMS:数据库管理系统,又称为数据库软件或数据库产品,用于创建或管理DB;
SQL:结构化查询语言,用于和数据库通信的语言,不是某个数据库软件特有的,而是几乎所有主流数据库软件通用的语言;
RDBMS (关系型数据库管理系统) : Oracle ,MySQL ,PG,MSSQL
NoSQL (not only sql):
键值对: Redis ,memcached
文档: MongoDB
NewSQL: TiDB,Spanner ,AliSQL(RDS+DRDS) ,OB ,PolarDB
3.数据库存储数据的特点
3.1.数据存放到表中,然后表再放到库中;
3.2.一个库中可以有多张表,每张表具有唯一的表名来标识自己;
3.3.表中有一个或多个列,列又称为“字段”,相当于Java中的属性
3.4.表中的每一行数据相当于Java中的对象
2.Mysql5.7二进制部署
1)下载
二进制包下载地址:https://downloads.mysql.com/archives/community/
2)把安装包放到服务器上
[root@server_10.1.1.11 ~]#mkdir -p /application[root@server_10.1.1.11 ~]#cd /application[root@server_10.1.1.11 /application]#lsmysql-5.7.33-linux-glibc2.12-x86_64.tar.gz[root@server_10.1.1.11 /application]#tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C ./[root@server_10.1.1.11 /application]#lsmysql-5.7.33-linux-glibc2.12-x86_64[root@server_10.1.1.11 /application]#mv mysql-5.7.33-linux-glibc2.12-x86_64 mysql[root@server_10.1.1.11 /application]#lsmysql[root@server_10.1.1.11 /application]#rpm -qa | grep mariadbmariadb-libs-5.5.60-1.el7_5.x86_64[root@server_10.1.1.11 /application]#rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
3)创建MySQL用户和组
[root@server_10.1.1.11 /application]#groupadd mysql[root@server_10.1.1.11 /application]#useradd mysql -M -g mysql -s /sbin/nologin
4)添加环境变量
[root@server_10.1.1.11 /application]#tail -1 /etc/profileexport PATH=/application/mysql/bin:$PATH
5) 创建数据、日志、pid目录,改变用户属主和属组
[root@server_10.1.1.11 /application]#mkdir -p /data/mysql/data[root@server_10.1.1.11 /application]#chown -R mysql.mysql /application/mysql[root@server_10.1.1.11 /application]#chown -R mysql.mysql /data/mysql/data[root@server_10.1.1.11 /data/mysql/data]#mkdir -p /var/log/mysql[root@server_10.1.1.11 /data/mysql/data]#chown -R mysql.mysql /var/log/mysql
6)安装依赖包
[root@server_10.1.1.11 /application]#yum install libaio-devel -y
7)初始化数据库(无初始密码)
[root@server_10.1.1.11 /application]#mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
8)准备基础配置文件
cat >/etc/my.cnf <<EOF[mysql]socket = /tmp/mysql.sock[mysqld]user = mysqlport = 3306datadir = /data/mysql/databasedir = /application/mysqlsocket = /tmp/mysql.sockbind-address = 0.0.0.0character-set-server = utf8mb4collation-server = utf8mb4_general_cilog-error = /var/log/mysqld.logmax_connections = 10240open_files_limit = 65535innodb_buffer_pool_size = 3Ginnodb_flush_log_at_trx_commit = 2innodb_log_file_size = 256MEOF
9)配置启动服务
cat >/etc/systemd/system/mysqld.service <<EOF[Unit]Description=MySQL ServerDocumentation=man:mysqld(8)Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.htmlAfter=network.targetAfter=syslog.target[Install]WantedBy=multi-user.target[Service]User=mysqlGroup=mysqlExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnfLimitNOFILE = 5000EOF
10)启动,验证服务
[root@server_10.1.1.11 /application]#systemctl start mysqld[root@server_10.1.1.11 /application]#systemctl status mysqld
3.Mysql5.7初始化密码
1)关闭数据库
[root@db01 ~]# systemctl stop mysqldShutting down MySQL.. SUCCESS!
2) 启动数据库到维护模式
--skip-grant-tables #跳过授权表--skip-networking #跳过远程登录[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
3) 登录并修改密码
mysql> alter user root@'localhost' identified by '1';ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statementmysql> flush privileges;mysql> alter user root@'localhost' identified by '1';Query OK, 0 rows affected (0.01 sec)
4) 关闭数据库,正常启动验证
