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

0|1文章目录

1|0数据库部署安装

【数据库官网下载地址】

2|0sql语言

【sql语言的详述】

2|1一、数据库简单介绍:

1|01、什么是数据库

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

1|02. DBA 是什么

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

1|03. 数据库(DBMS)产品种类

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

1|04. MySQL企业版本选择

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

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

1|01、下载 上传及解压

[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

1|02、 基础环境准备(删除旧的)

[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

1|03、初始化数据

[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/*

1|04、多版本之前的初始的不同

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 :管理员密码为空.

1|05、配置文件(主要参数编写)

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

1|06、准备启动脚本

[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

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

1|01)上传或下载代码包

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

1|02)安装依赖

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

1|03)解压

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

1|04)创建目录

[root@db01 ~]# mkdir /service

1|05)生成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 #编译

1|05)编译 make

[root@db01 mysql-5.6.46]# make

1|06)安装 make install

[root@db01 mysql-5.6.46]# make install

1|07)做软连接

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

1|08)创建数据库用户

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

1|09)拷贝配置文件和启动文件

#1.进入配置文件和脚本的目录 [root@db01 ~]# cd /service/mysql/support-files/ #2.拷贝配置文件 [root@db01 support-files]# cp my-default.cnf /etc/my.cnf

1|010)配置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

1|011)初始化数据库

#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

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

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

1|013)授权数据库目录

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

1|014)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

1|015)配置环境变量直接使用mysql

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

1|016)修改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) 注意:两种重置密码方式有区别。

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

1|01)上传二进制包

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

1|02)安装依赖

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

1|03)解压安装包

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

1|04)创建自定义目录

[root@db01 ~]# mkdir /service

1|05)移动目录并改名

[root@db01 ~]# mv mysql-5.6.46-linux-glibc2.12-x86_64 /service/mysql-5.6.46

1|06)做软连接

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

1|07)创建数据库用户

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

1|08)拷贝配置文件和启动文件

#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

1|09)初始化数据库

#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

1|010)启动数据库

[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)

1|011)如果是二进制安装到自定义目录下需要修改脚本目录

[root@db01 scripts]# sed -i 's#/usr/local#/service#g' /etc/init.d/mysqld /service/mysql/bin/mysqld_safe

1|012)授权数据库目录

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

1|013)再次启动

[root@db01 scripts]# /etc/init.d/mysqld start Starting MySQL.Logging to '/service/mysql/data/db04.err'. SUCCESS! [root@db01 scripts]#

1|014)检查进程和端口

[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]#

1|015)配置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

1|016)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/* #怎么办?一个一个修改吗?

1|017)查看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

1|018)配置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.一定成功

1|019)配置环境变量直接使用mysql

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

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

1|01)上传二进制包

[root@hzl ~]# rz -E mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

1|02)安装依赖

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

1|03)解压安装包

[root@hzl ~]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

1|04)创建自定义目录

[root@hzl ~]#mkdir /service

1|05)移动目录

[root@hzl ~]#mv mysql-5.7.20-linux-glibc2.12-x86_64 /service/

1|06)创建软连接

[root@hzl ~]#ln -s mysql-5.7.20-linux-glibc2.12-x86_64 mysql

1|07)创建数据库用户

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

1|08)编写配置文件

[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

1|09)授权数据库目录

[root@hzl ~]#chown -R mysql.mysql /service/mysql [root@hzl ~]#chown -R mysql.mysql /service/mysql-5.7.20-linux-glibc2.12-x86_6

1|010)初始化数据库

[root@hzl ~]#cd /service/mysql/support-files/ [root@hzl support-files]# ./mysql_install_db --user=mysql --basedir=/service/mysql/ --datadir=/service/mysql/data/

1|011)拷贝启动文件

[root@hzl support-files]# cp ./support-files/mysql.server /etc/init.d/mysqd [root@hzl support-files]# chmod +x /etc/init.d/mysqld

1|012)启动mysql服务

[root@hzl support-files]# /etc/init.d/mysqld restart

1|013)添加至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

1|014)检查启动状态

[root@hzl /]# netstat -lntp |grep 3306 tcp6 0 0 :::3306 :::* LISTEN 2708/mysqld

2|6六、yum安装MySQL(mysql-5.6)

1|01)配置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

1|02)检查存储库是否正确配置

[root@db01 ~]# yum repolist enabled | grep mysql

1|03)禁用默认的MySQL模块

[root@db01 ~]# sudo yum module disable mysql

1|04)安装MySQL

[root@db01 ~]# sudo yum install mysql-community-server

1|05)启动MySQL

[root@db01 ~]# sudo service mysqld start Starting mysqld (via systemctl): [ OK ]

1|06)检查MySQL运行状态

[root@db01 ~]# sudo service mysqld status

1|07)保护运行MySQL

[root@db01 ~]# mysql_secure_installation

2|7六、windows平台

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


__EOF__

本文作者ଲ小何才露煎煎饺
本文链接https://www.cnblogs.com/zeny/p/15121504.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   ଲ小何才露煎煎饺  阅读(99)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
点击右上角即可分享
微信分享提示