mysql8安装

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 Tair(兼容Redis),内存型 2GB
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

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
2月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
20天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 22.04.1上安装MySQL 8.0及设置root密码的注意事项
这些是在Ubuntu 22.04.1 系统上安装MySQL 8.0 及设置root密码过程中必须考虑的关键点。正确的遵循这些步骤可确保MySQL的安装过程既顺利又安全。
358 20
|
14天前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
85 10
|
2月前
|
关系型数据库 MySQL Linux
安装MySQL 5.7到红帽系RHEL8+系列上
本文介绍了在RHEL 8及以上系统中安装MySQL 5.7的两种方法:解压安装与RPM包安装。涵盖环境准备、目录配置、数据盘挂载、初始化及服务启动等关键步骤,适用于红帽系(8+)部署MySQL 5.7。
|
4月前
|
Java 关系型数据库 MySQL
在Linux平台上进行JDK、Tomcat、MySQL的安装并部署后端项目
现在,你可以通过访问http://Your_IP:Tomcat_Port/Your_Project访问你的项目了。如果一切顺利,你将看到那绚烂的胜利之光照耀在你的项目之上!
276 41
|
4月前
|
SQL 关系型数据库 MySQL
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
这是一份详细的MySQL安装与配置教程,适合初学者快速上手。内容涵盖从下载到安装的每一步操作,包括选择版本、设置路径、配置端口及密码等。同时提供基础操作指南,如数据库管理、数据表增删改查、用户权限设置等。还介绍了备份恢复、图形化工具使用和性能优化技巧,帮助用户全面掌握MySQL的使用方法。附带常见问题解决方法,保姆级教学让你无忧入门!
MySQL下载安装全攻略!小白也能轻松上手,从此数据库不再难搞!
|
4月前
|
开发框架 Java 关系型数据库
在Linux系统中安装JDK、Tomcat、MySQL以及部署J2EE后端接口
校验时,浏览器输入:http://[your_server_IP]:8080/myapp。如果你看到你的应用的欢迎页面,恭喜你,一切都已就绪。
366 17
|
4月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
302 11
|
5月前
|
Ubuntu 关系型数据库 MySQL
在Ubuntu 22.04上配置和安装MySQL
以上就是在Ubuntu 22.04上配置和安装MySQL的步骤。这个过程可能看起来有点复杂,但只要按照步骤一步步来,你会发现其实并不难。记住,任何时候都不要急于求成,耐心是解决问题的关键。
580 30
|
4月前
|
Ubuntu 关系型数据库 MySQL
mysql8.0安装初始化不需要设定root密码?
uubntu 的mysql安装完成后无法设定root密码
291 10