mysql8安装

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
简介: 本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。

软件下载:https://downloads.mysql.com/archives/community/
wget http://mirrors.sohu.com/mysql/MySQL-5.7/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
修改主机名
hostnamectl set-hostname master

环境准备
1 安装依赖
yum install libaio numactl -y
2 创建用户以及用户组
groupadd mysql
useradd -m -r -g mysql mysql
3 配置 ulimit
我们一般使用 mysql 用户启动数据库,如果不设置文件打开数和进程数,后期会有问题
打开 /etc/security/limits.conf 文件,在文件末尾写上
mysql soft nproc 65536
mysql hard nproc 65536
mysql soft nofile 65536
mysql hard nofile 65536
打开 /etc/security/limits.d/90-nproc.conf 把参数调整为

  • soft nproc 65536
    root soft nproc unlimited
  • soft nofile 65536
    root soft nofile unlimited

作为生产环境安装首先要调整操作系统环境:

调整文件句柄和进程数
vim /etc/systemd/system.conf centos7调整如下2个值

DefaultLimitNOFILE=

DefaultLimitNOFILE=655350

DefaultLimitAS=

DefaultLimitNPROC=

DefaultLimitNPROC=655350
内核参数优化

少用交换分区

vm.swappiness <= 5
vm.dirty_ratio <= 20
vm.dirty_background_ratio <= 10
net.ipv4.tcp_max_syn_backlog = 819200
net.core.netdev_max_backlog = 400000
net.core.somaxconn = 4096

解决time_wait过高导致数据库连接不上

net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_fin_timeout = 30
禁用selinux 和关闭防火墙
文件系统mysql推荐使用xfs文件系统
io调度 SAS :deadline SSD&PCI-E: noop
4 在 hosts 文件加上本机解析
如果不设置 hosts 本机解析,偶然会出现一些诡异的问题,所以还是加上比较好
host_ip=$(ifconfig | grep inet | grep cast | awk '{print $2}' | awk -F: '{print $NF}' | head -1)
echo "$host_ip hostname" >> /etc/hosts

6 关闭 iptable
数据库一般不允许通外网,如果对防火墙不是很熟悉,可以关掉; 如果网络环境不够安全,可以开启
service iptables stop
chkconfig iptables off
7 关闭 selinux
selinux 可能会造成无法写入数据,如果对它不熟悉,建议关掉
查看 selinux 状态
getenforce
临时关闭
setenforce 0
永久关闭
打开 /etc/sysconfig/selinux
SELINUX=enforcing 改为 SELINUX=disabled
sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config
安装
这次安装数据目录为 /data/mysql_db/,日志目录为 /data/mysql_log/,实例名为 mysql_test,启动用户为 mysql
1 解压文件
把二进制文件解压出来,放到 /user/local/ 目录下
tar -xvzf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql80

mysql配置环境变量
export MYSQL_HOME=/usr/local/mysql80
export PATH=${MYSQL_HOME}/bin:$PATH
PS1=uname -n":"'$USER'":"'$PWD'":>"; export PS1

2 创建数据和日志目录
mkdir -p /data/mysql_db
mkdir -p /data/mysql_log
3 初始化目录
/usr/local/mysql80/bin/mysqld --initialize-insecure --basedir=/usr/local/mysql80 --datadir=/data/mysql_db --user=mysql ## --initialize生成随机密码,--initialize-insecure不生成密码##
mysql8.0需要初始化是加上不区分大小写
/usr/local/mysql80/bin/mysqld --initialize-insecure --lower-case-table-names=1 --basedir=/usr/local/mysql80 --datadir=/data/mysql_db --user=mysql ## --initialize生成随机密码,--initialize-insecure不生成密码##

/usr/local/mysql80/bin/mysql_ssl_rsa_setup --basedir=/usr/local/mysql80 --datadir=/data/mysql_db

4 生成配置文件
一台机器上有可能会存在多个 MySQL 实例,我们可以把 my.cnf 文件放到对应实例的数据目录下,由于 MySQL 会受到默认配置文件的影响,所以我们要把 /etc/my.cnf 移走, 然后创建新的 my.cnf 文件
rm -f /etc/my.cnf
vim /data/mysql_db/my.cnf

本次安装参考配置,具体参数结合服务器情况调整

[client]
port = 3306
socket = /data/mysql_db/mysql.sock

[mysqld]

default-character-set =utf8mb4

datadir = /data/mysql_db
basedir = /usr/local/mysql80
tmpdir = /tmp
socket = /data/mysql_db/mysql.sock
pid-file = /data/mysql_db/mysql.pid
skip-external-locking = 1
skip-name-resolve = 1
port = 3306
server_id = 8201
lower_case_table_names = 1
innodb_large_prefix=1
innodb_file_format=Barracuda
max_connections=3000

default-storage-engine = InnoDB
character-set-server = utf8mb4
default_password_lifetime=0

log

binlog_cache_size = 16M
log_bin = /data/mysql_log/mysql-bin
log_bin_index = /data/mysql_log/mysql-bin.index
binlog_format = row
expire_logs_days = 15

relay_log_recovery=ON
relay_log=/data/mysql_log/mysql-relay-bin
relay_log_index=/data/mysql_log/mysql-relay-bin.index

log_error = /data/mysql_log/mysql-error.log
log_queries_not_using_indexes = 1

slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql_log/mysql-slow.log

innodb

innodb_buffer_pool_size = 4G
innodb_buffer_pool_instances = 8
innodb_log_group_home_dir = /data/mysql_log/
innodb_undo_directory = /data/mysql_log/
innodb_undo_logs = 128
innodb_flush_neighbors = 1
innodb_log_file_size = 1G
innodb_file_per_table = on

bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_repair_threads = 1

log_timestamps=system

[mysqldump]
quick
max_allowed_packet = 64M

[myisamchk]
key_buffer_size = 32M
sort_buffer_size = 32M
read_buffer = 16M
write_buffer = 16M

[mysql]
prompt="\u@\h \R:\m:\s [\d]> "

5 生成启动文件
cp /usr/local/mysql80/support-files/mysql.server /etc/init.d/mysqld
vim /etc/init.d/mysqld

basedir=
datadir=

改为, 手动指定配置文件和数据目录
basedir=/usr/local/mysql80
datadir=/data/mysql_db

把数据目录的所有者改为 mysql
chown mysql.mysql /etc/init.d/mysqld
chown mysql.mysql -R /data/mysql*

启动实例

以 mysql 用户来启动
su - mysql
[mysql@chengqm ~]$ /etc/init.d/mysqld start
Starting MySQL.. SUCCESS!

进入 mysql 客户端
mysql -S /data/mysql_db/mysql.sock

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
995 67
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
44 4
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
529 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
92 3
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
70 2
|
1月前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
118 2
|
28天前
|
运维 关系型数据库 MySQL
安装MySQL8数据库
本文介绍了MySQL的不同版本及其特点,并详细描述了如何通过Yum源安装MySQL 8.4社区版,包括配置Yum源、安装MySQL、启动服务、设置开机自启动、修改root用户密码以及设置远程登录等步骤。最后还提供了测试连接的方法。适用于初学者和运维人员。
155 0
|
2月前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
139 4
|
2月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。

相关产品

  • 云数据库 RDS MySQL 版