MySQL介绍与安装

MySQL介绍

1.什么是数据?

数据:文字,图片,视频------人类认知的数据表现方式
计算机:二进制,16进制的机器语言
基于数据的重要性和复杂性的不同,我们会有不同的管理方式

适合存储到数据库的数据?
重要性较高
关系较复杂的数据

2.什么是数据管理系统(DBMS)?

RDBMS:关系型数据库管理系统
比较适合于,安全级别要求高的数据以及比较复杂的数据

redis(NoSQL):非关系型数据库管理系统
适合于高性能存储数据,一般是配合RDBS进行使用的
针对大数据处理分析,分布式架构更加擅长

3.数据库管理系统种类

RDBMS:
MySQL,Oracle,MSSQL(SQL server),PG

NoSQL:Not only SQL
键-值(key-value):Redis,memcached
文档(document):MongoDB

4.MySQL简介及产品线

4.1MySQL行业主流版本

5.6
5.7
8.0(经常在官网上看一些新增的特性)

4.2企业版本选择(MySQL分支版本)

Oracle:
	MySQL官方版
红帽:
	Mariadb
Percona:
	PerconDB

4.3版本选择建议要上新环境

1.一般选择官方版本5.6,5.7
2.GA(稳定发布版)
3.6-12月的产品版本

4.4如何获取MySQL软件

企业版:Enterprise,互联网行业一般不选择
社区版本:选择
源码包:source code  .tar.gz
通用二进制
公司用的什么版本的数据库,具体什么版本号
5.6.20  5.6.34 5.6.34 5.6.38 5.6.40
5.7.18 5.7.20 5.7.22

如何安装MySQL5.6版本,5.7版本,8.0版本,都有什么不同?

数据库官网下载地址:https://downloads.mysql.com/archives/community/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.源码安装数据库(5.6.46版)

1)上传或下载代码包

[root@db03 ~]# rz mysql-5.6.46.tar.gz

2)安装依赖

[root@db03 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel

3)解压

[root@db03 ~]# tar xf mysql-5.6.46.tar.gz

4)创建目录

[root@db01 ~]# mkdir /service

5)生成cmake

[root@db03 ~]# cd mysql-5.6.46/
[root@db03 ~]# cmake  -DCMAKE_INSTALL_PREFIX=/service/mysql-5.6.46 
-DMYSQL_DATADIR=/service/mysql-5.6.46/data \
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=system \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0

#程序存放位置
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.38 \
#数据存放位置
-DMYSQL_DATADIR=/application/mysql-5.6.46/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/application/mysql-5.6.38/tmp/mysql.sock \
#使用utf8字符集
-DDEFAULT_CHARSET=utf8 \
#校验规则
-DDEFAULT_COLLATION=utf8_general_ci \
#使用其他额外的字符集
-DWITH_EXTRA_CHARSETS=all \
#支持的存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
#禁用的存储引擎
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
#启用zlib库支持(zib、gzib相关)
-DWITH_ZLIB=bundled \
#启用SSL库支持(安全套接层)
-DWITH_SSL=bundled \
#启用本地数据导入支持
-DENABLED_LOCAL_INFILE=1 \
#编译嵌入式服务器支持
-DWITH_EMBEDDED_SERVER=1 \
# mysql5.6支持了google的c++mock框架了,允许下载,否则会安装报错。
-DENABLE_DOWNLOADS=1 \
#禁用debug(默认为禁用)
-DWITH_DEBUG=0
#编译

6)编译make

[root@db03 mysql-5.6.46]# make

7)安装make install

[root@db03 mysql-5.6.46]# make install

8)做软连接

[root@db03 ~]# ln -s /service/mysql-5.6.46 /service/mysql

9)创建数据库用户

[root@db02 ~]# useradd mysql -s /sbin/nologin -M

10)拷贝配置文件和启动文件

#1.进入配置文件和脚本的目录
[root@db02 ~]# cd /service/mysql/support-files/

#2.拷贝配置文件
[root@db02 support-files]# cp my-default.cnf /etc/my.cnf

11)配置system管理MySQL服务

#1.配置system管理MySQL
[root@db02 ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

#2.重新加载启动文件列表
[root@db02 ~]# systemctl daemon-reload

12)初始化数据)

#1.进入初始化目录
[root@db02 support-files]# cd /service/mysql/scripts/

#2.添加执行权限
chmod +x mysql_install_db

#3.执行初始化命令
[root@db02 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data

13)创建socket文件目录(二进制安装没有)

#先创建tmp目录
[root@db02 ~]# mkdir /service/mysql/tmp

14)授权数据库目录

[root@db02 ~]# chown -R mysql.mysql /service/mysql
[root@db02 ~]# chown -R mysql.mysql /service/mysql-5.6.46

15)system管理启动MySQL

[root@db02 ~]# systemctl start mysql
[root@db02 ~]# ps -ef | grep [m]ysql
mysql     23509      1  3 22:36 ?        00:00:01 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
[root@db02 ~]# netstat -lntp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      23509/mysqld

16)配置环境变量直接使用mysql

[root@db02 ~]# vim /etc/profile.d/mysql.sh 
export PATH=/service/mysql/bin:$PATH
[root@db02 ~]# source /etc/profile

17)修改root用户密码

[root@db02 ~]# mysql -u root -p			#默认root用户密码为空,有多种方式重置root密码
第一种:
MySQL > SET PASSWORD=PASSWORD('123456');
Query OK, 0 rows affected (0.00 sec)

第二种:
MySQL > grant all privileges on *.* to root@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

注意:两种重置密码方式有区别。

2.二进制安装(5.7.28版)

1)上传二进制包

[root@db01 ~]# rz mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

2)安装依赖并且清理环境

[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel
[root@db01 ~]# yum remove -y mariadb

3)解压安装包

[root@db01 ~]# tar -xvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 

4)创建目录

[root@db01 ~]# mkdir /service

5)移动目录并且改名

[root@db01 ~]# mv mysql-7.28-linux-glibc2.12-x86_64 /app/mysql-5.7.28

6)做软连接

[root@db01 app]# ln -s mysql-5.7.28 /app/mysql

7)创建数据库用户并授权

[root@db01 app]# useradd mysql -s /sbin/nologin -M
[root@db01 app]# mkdir data
[root@db01 app]# chown -R  mysql. /service/*

8)拷贝配置文件和启动文件

1.5.7版本的my.cnf文件要自己准备
[root@db01 support-files]# cat /etc/my.cnf 
[mysqld]
user=mysql
basedir=/service/mysql
datadir=/service/mysql/data
server_id=6
port=3306
socket=/service/mysql/mysql.sock
log-error=/service/mysql/data/mysql.err
log-bin=/service/mysql/data/mysql-bin
sync_binlog=1
binlog_format=row
secure-file-priv=/tmp
explicit_defaults_for_timestamp=true

[mysql]
socket=/service/mysql/mysql.sock



2.进入配置文件和脚本的目录
[root@db01 app]# cd mysql/support-files/
3.拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld

9)初始化数据库

[root@db01 mysql]# ./bin/mysqld --defaults-file=/etc/my.cnf   --initialize-insecure  --user=mysql
[root@db01 mysql]# ./bin/mysqld_safe --defaults-file=/etc/my.cnf &

10)启动数据库

[root@db01 ~]# /service/mysql/bin/mysql

11)修改密码

mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123';

12)检查进程和端口

[root@db01 ~]# ps -ef | grep [m]ysql

13)配置system管理MySQL服务

#1.配置system管理MySQL
[root@db01 ~]# vim /usr/lib/systemd/system/mysql.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/service/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

#2.重新加载启动文件列表
[root@db01 ~]# systemctl daemon-reload

14)配置环境变量直接使用mysql

[root@db01 ~]# vim /etc/profile.d/mysql.sh 
export PATH=/service/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile

15)再次登录数据库

[root@db01 ~]# mysql -u root -p
Enter password: 123

3.yum安装(5.7.33版)

#1.yum install -y yum-utils wget
#2.wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#3.rpm -qa | grep 'mariadb'
#4.rpm -ivh mysql80-community-release-el7-3.noarch.rpm 
#5.rm -rf mysql80-community-release-el7-3.noarch.rpm 
#6.yum update
#7.yum makecache
#8.yum-config-manager --disable mysql80-community
#9.yum-config-manager --enable mysql57-community
#10.yum repolist all | grep 'mysql'
#11.yum install -y mysql-community-server
#12查看密码语句
cat /var/log/mysqld.log | grep 'password'
#13.systemctl start mysql
#14.修改密码语句
alter user 'root'@'localhost' identified with mysql_native_password by 'Aa123456.';

4. MySQL-8.0.18版本二进制部署安装

1)上传代码

 rz mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

2)解压

tar xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz

3)移动目录并改名

mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql80
mv mysql80 /usr/local/
cd /usr/local/mysql80/
ll
drwxr-xr-x  2 7161 31415   4096 9月  20 2019 bin
drwxr-xr-x  2 7161 31415     86 9月  20 2019 docs
drwxr-xr-x  3 7161 31415    282 9月  20 2019 include
drwxr-xr-x  7 7161 31415   4096 9月  20 2019 lib
-rw-r--r--  1 7161 31415 408918 9月  20 2019 LICENSE
-rw-r--r--  1 7161 31415 102977 9月  20 2019 LICENSE.router
drwxr-xr-x  4 7161 31415     30 9月  20 2019 man
-rw-r--r--  1 7161 31415    687 9月  20 2019 README
-rw-r--r--  1 7161 31415    700 9月  20 2019 README.router
drwxrwxr-x  2 7161 31415      6 9月  20 2019 run
drwxr-xr-x 28 7161 31415   4096 9月  20 2019 share
drwxr-xr-x  2 7161 31415     77 9月  20 2019 support-files
drwxr-xr-x  3 7161 31415     17 9月  20 2019 var  

4)修改配置文件

cat > /data/mysql80/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql80
datadir=/data/mysql80/data
socket=/tmp/mysql80.sock
user=mysql
log_error=/tmp/mysql80.log
skip_name_resolve
log_bin=/data/mysql80/mysql-bin
port=8006
server_id=8006
EOF

5)准备启动脚本

cat >/etc/systemd/system/mysqld80.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql80/bin/mysqld --defaults-file=/data/mysql80/my.cnf
LimitNOFILE = 5000
EOF

6)初始化数据

/usr/local/mysql80/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql80  --datadir=/data/mysql80/data

7)授权

chown -R mysql.mysql /data

8)启动数据库

systemctl start mysqld80
/usr/local/mysql80/bin/mysql -S /tmp/mysql80.sock 

Server version: 8.0.18 MySQL Community Server - GPL

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

5)MySQL忘了root密码要如何操作?

1. 挂维护页
2. 关数据库
[root@db01 ~]# systemctl stop mysqld
3. 跳过授权启动
[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &
--skip-grant-tables : 连接层关闭验证模块,所有验证表不加载。
--skip-networking :连接层关闭TCP/IP协议,禁止远程访问。
4. 改密码
mysql> alter user root@'localhost' identified by '123';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> alter user root@'localhost' identified by '123';
Query OK, 0 rows affected (0.00 sec)
mysql>
[root@db01 ~]# pkill mysqld
[root@db01 ~]# systemctl start mysqld
5.正常开启业务
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值