1、mysql学习之——mysql简介与部署

MySQL介绍

一、MySQL 是什么

MySQL 是一个数据库,是一个关系型数据库。可以通过MySQL来管理数据。

1.1 关系型数据库与非关系型数据库

关系型数据库指的是采用二元关系存储数据的数据仓库,跟excel表格一模一样。各类操作都在这个二元表格上进行。
在这里插入图片描述
像excel的关系型数据库并不能满足所有的场景,于是有了非关系型数据库(NoSQL),提供了更多形式的存储方式和更高的性能。

1.2 关系型数据库和非关系型数据库对比

1.2.1 常用的关系型数据库与非关系型数据库

1、生产环境常用数据库

1、生产环境主流的关系型数据库有:
		Oracle, 
		SQL Server
		MySQL/MariaDB等
2、生产环境主流的非关系型数据库有:
		MongoDB
		Memcached
		Redis

2、两种数据库的区别

1、关系型数据库
- 关系型数据库采用二维表存储,与excel一模一样。
- 互联网最常见的是MySQL,Oracle跟MySQL都超级火。
- 关系型数据库通用SQL语言管理数据库,类比于CentOS中的shell。
- ACID理论,原子性,一致性,隔离性,持久性。

2、非关系型数据库
- 是关系型数据库的补充,Not Only SQL。
- 最常见的有Redis、MongoDB、Memcached等
- 高性能、高并发
- 没有SQL语言,一般用数据接口或者查询API来操作

3、两种数据库的优缺点

1、
- 关系型数据库都是表结构,格式一致,易于维护;
- 非关系型数据库严格上不是一种数据库,而是一种数据结构化存储方法的集合,可以是文档或者键值对等。
2、
- 关系型数据库SQL语言通用,支持事务,一个表和多个表之间的复杂查询很方便;
- 非关系数据库不支持SQL,不支持事务,数据结构相对复杂,复杂查询方面欠佳;
3、
- 关系型数据库是固定的表结构,不灵活;
- 非关系型数据库非关系数据库存储格式灵活,可以是key-value,文档,图片形式等,应用场景广泛;
4、
- 关系型数据库的数据只能存储在磁盘,受限于磁盘I/O瓶颈,性能不高;
- 非关系型数据库的数据可以存储在硬盘和内存中,速度快,性能高。

二、MySQL怎么用

  • 安装mysql
  • 使用SQL语言操作 MySQL ,基本就是增删改查。

2.1 MySQL 类型和版本

2.1.1 MySQL 的类型
1、MySQL Community Server
- 社区版,开源免费,一般我们通用的版本,官方不提供技术支持。

2、MySQL Enterprise Edition
- 企业版,付费版本,可以试用30天。

3、MySQL Cluster
- 集群版,开源免费。但是MySQL Cluster CGE 付费的。
2.2.2 MySQL版本号怎么看
比如MySQL 5.7.27
- 主版本号:   (5) 文件格式改动时改变
- 发行版本号: (7) 新增特性或者改动不兼容等时改变
- 发行序列号: (27)修复bug,更换配置参数等时改变

2.2 部署

2.2.1、官网地址
www.mysql.com
www.oracle.com
2.2.2 YUM 安装
1、服务器初始化

a、系统配置

系统:CentOS 7.6
配置:2-2G-40G 系统内存2G以上

b、关闭防火墙和selinux

1、firewalld
临时关闭
# systemctl stop firewalld
永久关闭  
# systemctl disable firewalld

2、selinux
临时关闭
# setenforce 0
永久关闭
# sed -ri 's/SELINUX=*/SELINUX=disabled/' /etc/sysconfig/selinux

c、清理安装环境

# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql
2、下载MySQL的.repo文件

yum源在哪里找:mysql的官方网站

在这里插入图片描述
拉到底
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1、下载yum源的repo文件
# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
或者下载到windows,再上传到linux服务器上

2、安装yum源
# rpm -ivh mysql80-community-release-el7-3.noarch.rpm
# yum -y install yum-utils    #安装yum工具包

3、修改yum源为打开MySQL5.7版本。
# yum-config-manager --enable mysql57-community   将禁用的yum源库启用
# yum-config-manager --disable mysql80-community   将启用的yum源库禁用
或者进入yum源内进行修改
# vim /etc/yum.repos.d/mysql-community.repo

4、安装数据库
# yum install -y mysql-community-server

5、启动MySQL并设置开机自启
# systemctl start mysqld
# systemctl enable mysqld

6、修改数据库密码(MySQL初始密码默认不可以操作数据库,所以需要修改数据库密码)

第一步:查找密码:
# grep password /var/log/mysqld.log
[Note] A temporary password is generated for root@localhost: woHtkMgau9,w

第二步:修改密码
方法一:mysqladmin -u root -p'旧密码' password '新密码'
# mysqladmin -uroot -p'woHtkMgau9,w' password 'Cuckoo@123'

方法二:进入数据库内部修改
# mysql -uroot -p'woHtkMgau9,w'
mysql> alter user 'root'@'localhost' identified by 'Cuckoo@123';
mysql> exit
# mysql -uroot -p'Cuckoo@123'

3、修改密码强度
1、修改密码强度策略
# vim /etc/my.cnf  
#添加如下内容
validate_password=off
# systemctl restart mysqld

2、修改密码为弱密码
# mysqladmin -uroot -p'Cuckoo@123' password '1'
登录测试
# mysql -uroot -p'1'
mysql> exit
4、破解密码

在root账户没了,或者root密码丢失时

1、如果修改了简单密码策略,先注释掉
# vim /etc/my.cnf
##validate_password=off

2、添加一行配置忽略密码登录
# vim /etc/my.cnf
skip-grant-tables
# systemctl restart mysqld

或者在启动mysql时指定忽略密码
# mysqld --skip-grant-tables --user=mysql &

3、不用密码登录mysql
# mysql -uroot  #这时发现不用密码可以进入数据库
mysql> update mysql.user set authentication_string=password('Cuckoo@123') where user='root' and host='localhost';
		authentication_string 是mysql库user表中的一个字段,存放密码信息;
		password()函数,会将括号内设置的密码编码加密;
mysql>flush privileges;  不刷新不会立即加载配置,这里也可以是重启mysql来重新加载user表。


4、编辑配置文件将skip-grant-tables参数注释
5、重启mysql

2.2.3 源码包安装

编译的原理不再赘述。

1、关闭防火墙
1、firewalld
临时关闭
# systemctl stop firewalld
永久关闭  
# systemctl disable firewalld

2、selinux
临时关闭
# setenforce 0
永久关闭
# sed -ri 's/SELINUX=*/SELINUX=disabled/' /etc/sysconfig/selinux
2、清理环境和新建用户
# yum erase mariadb mariadb-server mariadb-libs mariadb-devel -y
# userdel -r mysql
# rm -rf /etc/my*
# rm -rf /var/lib/mysql

# useradd -r mysql -M -s /bin/false
3、下载安装包

在MySQL官网下载MySQL的源码包

下载MySQL的源码包
# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-boost-5.7.27.tar.gz
4、安装相关编译软件
安装编译软件
# yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make 

安装cmake:
# yum -y install cmake

5、安装MySQL
1、创建mysql的相关目录
 # mkdir -p /usr/local/mysql/{data,log}

2、解压mysql源码包
# tar xzvf mysql-boost-5.7.27.tar.gz -C /usr/local/
-:如果安装MySQL5.7及以上的版本,在编译安装之前需要安装boost,
- 因为高版本mysql需要boots库的安装才可以正常运行。否则会报
CMake Error at cmake/boost.cmake:81错误
- 安装包里面自带boost包

3、编译安装cmake
# cd /usr/local/mysql-5.7.27/
# cmake . \
-DWITH_BOOST=boost/boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1

如果提示需要安装boost,添加下列指令到第二行即可
-DDOWNLOAD_BOOST=1 \

# 参数详解
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \   安装目录
-DSYSCONFDIR=/etc \   配置文件存放 (默认可以不安装配置文件)
-DMYSQL_DATADIR=/usr/local/mysql/data \   数据目录,错误日志文件也会在这个目录
-DINSTALL_MANDIR=/usr/share/man \     帮助文档 
-DMYSQL_TCP_PORT=3306 \     默认端口
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \  sock文件位置,用来做网络通信的,客户端连接服务器的时候用
-DDEFAULT_CHARSET=utf8 \    默认字符集。字符集的支持,可以调
-DEXTRA_CHARSETS=all \   扩展的字符集支持所有的
-DDEFAULT_COLLATION=utf8_general_ci \  支持的
-DWITH_READLINE=1 \    上下翻历史命令
-DWITH_SSL=system \    使用私钥和证书登陆(公钥)  可以加密。 适用与长连接。坏处:速度慢
-DWITH_EMBEDDED_SERVER=1 \   嵌入式数据库
-DENABLED_LOCAL_INFILE=1 \    从本地倒入数据,不是备份和恢复。
-DWITH_INNOBASE_STORAGE_ENGINE=1  默认的存储引擎,支持外键


在这里插入图片描述
如果能看到上图,那就是cmake好了。

4、编译并安装
# make && make install
这里会比较慢,如果cpu是多核心,可以用-j来指定参与编译的核心数量,
当然不指定也没什么关系,慢慢等着吧。
# make -j2 && make install

5、安装出错需要重装
不用重新解压,只需要删除安装目录中的缓存文件CMakeCache.txt
再make && make install 即可

下图就是开始编译了
在这里插入图片描述
**需要很长时间!**大约半小时

6、初始化MySQL

1、初始化:只需要初始化一次

# cd /usr/local/mysql
# chown -R mysql.mysql .
# ./bin/mysqld --initialize --user=root \
--basedir=/usr/local/mysql/ \
--datadir=/usr/local/mysql/data 
初始化完成后,一定要记住提示最后的初始化密码

在这里插入图片描述
2、配置MySQL配置文件

# vim /etc/my.cnf    --如果文件内有内容,将文件中所有内容注释掉再添加如下内容
[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8

[mysqld]
port = 3306
user = mysql
basedir = /usr/local/mysql  
datadir = /usr/local/mysql/data  
socket = /tmp/mysql.sock
character_set_server = utf8

----------------------------------------------------------
参数详解:
[client]
port = 3306 # 默认连接端口
socket = /tmp/mysql.sock # 用于本地连接的socket套接字
default-character-set = utf8 # 编码

[mysqld]
port = 3306  #服务端口号,默认3306
user = mysql #mysql启动用户
basedir = /usr/local/mysql #mysql安装根目录
datadir = /usr/local/mysql/data #mysql数据文件所在位置
socket = /tmp/mysql.sock #为MySQL客户端程序和服务器之间的本地通讯指定一个套接字文件
character_set_server = utf8 #数据库默认字符集

3、启动MySQL

# cd /usr/local/mysql
# ./bin/mysqld_safe --user=mysql &
mysql是以mysql用户启动的,不是root用户。

# netstat -lntp | grep 3306
tcp6 	0  	0 	:::3306 	:::* 	LISTEN 	31005/mysqld 

4、登录MySQL

# /usr/local/mysql/bin/mysql -uroot -p'GP9TKGgY9i/8'
mysql> exit

5、修改密码

# /usr/local/mysql/bin/mysqladmin -u root -p'GP9TKGgY9i/8'  password 'Cuckoo@123'
mysqladmin: [Warning] Using a password on the command line interface can be insecure.
Warning: Since password will be sent to server in plain text, use ssl connection to ensure password safety.

6、添加环境变量

# vim /etc/profile
PATH=$PATH:$HOME/bin:/usr/local/mysql/bin

# source /etc/profile

之后就可以在任何地方使用mysql命令登陆Mysql服务器:
# mysql -uroot -p'Cuckoo@123'
mysql>exit

7、配置mysqld的管理工具

# cd /usr/local/mysql/support-files/
# cp mysql.server /etc/init.d/mysqld
# chkconfig --add mysqld
# chkconfig mysqld on

启动mysql
# /etc/init.d/mysqld start 

关闭mysql
# /etc/init.d/mysqld stop

查看mysql端口
# netstat -lntp | grep 3306

到此,mysql的yum部署和源码部署都梳理完毕。在实际使用中,由于mysql官网在国外,
如果需要批量安装部署mysql,可以通过搭建自己的ftp yum源,其他服务器均可以从ftp上
拉取安装包。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值