02@数据库部署安装详解(多种版本使用源码、二进制及yum安装部署)

文章目录

数据库部署安装

【数据库官网下载地址】

sql语言

【sql语言的详述】

一、数据库简单介绍:

1、什么是数据库

数据库,是对企业核心数据 高效 安全 存储和管理的软件.

2. DBA 是什么

管理 维护 使用 数据库的管理人员

3. 数据库(DBMS)产品种类

RDBMS 关系型数据库 : Oracle MySQL PG MSSQL
NoSQL 非关系型数据库 : MongoDB Redis Elasticsearch
DDBMS 分布式数据库解决方案 : PinCAP TiDB PolarDB TDSQL OB

4. MySQL企业版本选择

5.6 : 5.6.40+ 双数版,GA 6-12月
5.7 : 5.7.20 + 双数版
8.0 : 8.0.20+ 双数版

二、二进制安装(mysql-8.0.20)

1、下载 上传及解压
[root@db01 opt]# tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 
[root@db01 opt]# ln -s /opt/mysql-8.0.20-linux-glibc2.12-x86_64  /usr/local/mysql 
2、 基础环境准备(删除旧的)
[root@db01 opt]# yum remove mariadb-libs -y 
[root@db01 opt]# id mysql                   #查看用户
[root@db01 opt]# mkdir -p /data/3306/data
[root@db01 opt]# chown -R mysql. /data
[root@db01 opt]# ls -ld /data
drwxr-xr-x 3 mysql mysql 18 Nov  2 12:24 /data


[root@db01 opt]# vim /etc/profile            #添加环境变量
export PATH=/usr/local/mysql/bin:$PATH
3、初始化数据
[root@db01 opt]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data


#初始化参数说明:
 --initialize-insecure       : 初始化核心参数
 --user=mysql                : 指定初始化用户
 --basedir=/usr/local/mysql  : 数据库软件位置
 --datadir=/data/3306/data   : 数据存储位置




#案列一: [error] 
   libaio问题-----> yum install -y libaio-devel
 --initialize specified but the data directory has files in it. Aborting. ----> \rm -rf /data/3306/data/*
4、多版本之前的初始的不同

5.7 和 8.0 是一样
5.7之前是不一样
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

#区别:
--initialize :  会生成一个12位,4种密码复杂度临时管理员密码. 第一次登陆需要修改.
--initialize-insecure   :管理员密码为空.
5、配置文件(主要参数编写)
vim /etc/my.cnf 
[mysqld]
user=mysql
basedir=/usr/local/mysql 
datadir=/data/3306/data
port=3306 
socket=/tmp/mysql.sock 
[client]
socket=/tmp/mysql.sock
6、准备启动脚本
[root@db01 ~]# cd /usr/local/mysql/support-files/
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld  #复制配置文件
[root@db01 support-files]# systemctl enable mysqld
[root@db01 support-files]# systemctl start mysqld
[root@db01 support-files]# systemctl status mysqld

三、源码安装mysql(自定义目录安装MySQL-5.6.46)

1)上传或下载代码包
[root@db01 ~]# rz mysql-5.6.46.tar.gz
2)安装依赖
[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf openssl openssl-devel
3)解压
[root@db01 ~]# tar xf mysql-5.6.46.tar.gz
4)创建目录
[root@db01 ~]# mkdir /service
5)生成cmake
[root@db01 ~]# cd mysql-5.6.46/
[root@db01 ~]# 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=/service/mysql-5.6.46 \
#数据存放位置
-DMYSQL_DATADIR=/service/mysql-5.6.46/data \
#socket文件存放位置
-DMYSQL_UNIX_ADDR=/service/mysql-5.6.46/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
#编译
5)编译 make
[root@db01 mysql-5.6.46]# make
6)安装 make install
[root@db01 mysql-5.6.46]# make install
7)做软连接
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
8)创建数据库用户
[root@db01 ~]# useradd mysql -s /sbin/nologin -M
9)拷贝配置文件和启动文件
#1.进入配置文件和脚本的目录
[root@db01 ~]# cd /service/mysql/support-files/

#2.拷贝配置文件
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
10)配置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
11)初始化数据库
#1.进入初始化目录
[root@db01 support-files]# cd /service/mysql/scripts/

#2.执行初始化命令
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data
12)创建socket文件目录(二进制安装没有)
#先创建tmp目录
[root@db01 ~]# mkdir /service/mysql/tmp
13)授权数据库目录
[root@db01 ~]# chown -R mysql.mysql /service/mysql
[root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46
14)system管理启动MySQL
[root@db01 ~]# systemctl start mysql
[root@db01 ~]# 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@db01 ~]# netstat -lntp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      23509/mysqld
15)配置环境变量直接使用mysql
[root@db01 ~]# vim /etc/profile.d/mysql.sh 
export PATH=/service/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile
16)修改root用户密码
[root@db01 ~]# 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@'%' identified by 'oldboy';
Query OK, 0 rows affected (0.00 sec)

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

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

四、二进制安装mysql(自定义安装目录mysql-5.6.46)

1)上传二进制包
[root@db01 ~]# rz mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
2)安装依赖
[root@db01 ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf
3)解压安装包
[root@db01 ~]# tar xf mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz
4)创建自定义目录
[root@db01 ~]# mkdir /service
5)移动目录并改名
[root@db01 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /service/mysql-5.6.46
6)做软连接
[root@db01 ~]# ln -s /service/mysql-5.6.46 /service/mysql
7)创建数据库用户
[root@db01 ~]# useradd mysql -s /sbin/nologin -M
8)拷贝配置文件和启动文件
#1.进入配置文件和脚本的目录
[root@db01 ~]# cd /service/mysql/support-files/

#2.拷贝配置文件
[root@db01 support-files]# cp my-default.cnf /etc/my.cnf
cp: overwrite ‘/etc/my.cnf’? y

#3.拷贝启动脚本
[root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
9)初始化数据库
#1.进入初始化目录
[root@db01 support-files]# cd /service/mysql/scripts/

#2.执行初始化命令
[root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/service/mysql --datadir=/service/mysql/data
10)启动数据库
[root@db01 scripts]# /etc/init.d/mysqld start
/etc/init.d/mysqld: line 244: my_print_defaults: command not found
/etc/init.d/mysqld: line 264: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERRORstart! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
11)如果是二进制安装到自定义目录下需要修改脚本目录
[root@db01 scripts]# sed -i 's#/usr/local#/service#g' /etc/init.d/mysqld /service/mysql/bin/mysqld_safe
12)授权数据库目录
[root@db01 ~]# chown -R mysql.mysql /service/mysql
[root@db01 ~]# chown -R mysql.mysql /service/mysql-5.6.46
13)再次启动
[root@db01 scripts]# /etc/init.d/mysqld start
Starting MySQL.Logging to '/service/mysql/data/db04.err'.
 SUCCESS! 
[root@db01 scripts]#
14)检查进程和端口
[root@db01 scripts]# ps -ef | grep [m]ysql
root      23083      1  0 20:36 pts/0    00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr/local/mysql/data/db02.pid
mysql     23191  23083  0 20:36 pts/0    00:00:00 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=db02.err --pid-file=/usr/local/mysql/data/db02.pid
[root@db01 scripts]# netstat -lntp | grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      23191/mysqld        
[root@db01 scripts]# 
15)配置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

16)system管理启动mysql
#1.system管理启动MySQL
[root@db01 ~]# systemctl start mysql
[root@db01 ~]# ps -ef | grep [m]ysql

#一定是启动失败的,因为不只有启动脚本里面指定了/usr/local,很多都有
[root@db01 scripts]# grep -r '/usr/local' /service/mysql/*

#怎么办?一个一个修改吗?
17)查看MySQL配置文件检索顺序
[root@db01 mysql]# /service/mysql/bin/mysql --help|grep 'my.cnf'
                      order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf 
18)配置my.cnf
#1.配置指定数据库安装目录与数据目录
[root@db01 scripts]# vim /etc/my.cnf
[mysqld]
basedir=/service/mysql
datadir=/service/mysql/data

#2.再次启动
[root@db01 scripts]# systemctl start mysql

#3.一定成功
19)配置环境变量直接使用mysql
[root@db01 ~]# vim /etc/profile.d/mysql.sh 
export PATH=/service/mysql/bin:$PATH
[root@db01 ~]# source /etc/profile

五、二进制安装MySQL(mysql-5.7.20)

1)上传二进制包
[root@hzl ~]# rz  -E  mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 
2)安装依赖
[root@hzl ~]# yum install -y ncurses-devel libaio-devel gcc gcc-c++ glibc cmake autoconf
3)解压安装包
[root@hzl ~]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz 
4)创建自定义目录
[root@hzl ~]#mkdir /service 
5)移动目录
 [root@hzl ~]#mv mysql-5.7.20-linux-glibc2.12-x86_64 /service/
 
6)创建软连接
 [root@hzl ~]#ln -s  mysql-5.7.20-linux-glibc2.12-x86_64 mysql
7)创建数据库用户
 [root@hzl ~]#useradd mysql -s /sbin/nologin -M
8)编写配置文件
[root@hzl ~]# vim > /etc/my.cnf <<EOF

[mysql]
default-character-set=utf8mb4   #设置mysql客户端默认字符集,mb4支持符号

[mysqld]
skip-name-resolve
port = 3306                  #设置3306端口
basedir=/service/mysql       #设置mysql的安装目录
datadir=/service/mysql/data  #设置mysql数据库的数据的存放目录
max_connections=200          #允许最大连接数
character-set-server=utf8    #服务端使用的字符集默认为8比特编码的latin1字符集
default-storage-engine=INNODB #创建新表时将使用的默认存储引擎
lower_case_table_names=1
max_allowed_packet=16M

EOF
9)授权数据库目录
[root@hzl ~]#chown -R mysql.mysql /service/mysql
[root@hzl ~]#chown -R mysql.mysql /service/mysql-5.7.20-linux-glibc2.12-x86_6
10)初始化数据库
[root@hzl ~]#cd /service/mysql/support-files/

[root@hzl support-files]# ./mysql_install_db --user=mysql --basedir=/service/mysql/ --datadir=/service/mysql/data/
11)拷贝启动文件
[root@hzl support-files]# cp ./support-files/mysql.server /etc/init.d/mysqd

[root@hzl support-files]# chmod +x /etc/init.d/mysqld
12)启动mysql服务
[root@hzl support-files]# /etc/init.d/mysqld restart 
13)添加至systemctl启动项
[root@hzl ~]#vim > /usr/lib/systemd/system/mysql.service  << EOF

[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

EOF
14)检查启动状态
[root@hzl /]# netstat -lntp |grep 3306
tcp6       0      0 :::3306                 :::*                    LISTEN      2708/mysqld 

六、yum安装MySQL(mysql-5.6)

1)配置MySQL的yum源
[root@db01 ~]# cat /etc/yum.repos.d/mysql-community.repo
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/
enabled=1
gpgcheck=0
2)检查存储库是否正确配置
[root@db01 ~]#  yum repolist enabled | grep mysql
3)禁用默认的MySQL模块
[root@db01 ~]# sudo yum module disable mysql
4)安装MySQL
[root@db01 ~]# sudo yum install mysql-community-server
5)启动MySQL
[root@db01 ~]#  sudo service mysqld start
Starting mysqld (via systemctl):                           [  OK  ]
6)检查MySQL运行状态
[root@db01 ~]# sudo service mysqld status
7)保护运行MySQL
[root@db01 ~]# mysql_secure_installation

六、windows平台

【windows平台安装部署MySQL-5.7】

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值