欢迎来到摆烂乐园

“这里是只有过好生活,才能干好工作的摆烂乐园”

  • 2023.12.27 -

本文将详细给大家带来MySQL数据库社区版的下载与安装,不论你是初学者还是有经验的开发者,都希望你能从这个教程中收获知识与乐趣。

一、MySQL的四大版本

  • MySQL Community Server社区版本:免费开源,自由下载,但不提供官方技术支持,适用于大多数普通用户。
  • MySQL Enterprise Edition企业版本:需要付费,不能在线下载,可以使用30天,提供了更多的功能和更完整的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。
  • MySQL Cluster集群版:免费开源,用于架设集群服务器,可以将几个MySQL Server封装成一个Server,需要在社区版或企业版的基础上使用。
  • MySQL Cluster C:MySQL Cluster C是MySQL Cluster的一个版本,它是一款结合了线性可扩展性和高可用性,且提供跨分区和分布式数据集事务一致性的内存中实时访问的分布式数据库。

二、MySQL下载

首先,我们需要确保你的计算机满足MySQL的系统要求。一般来说,只要你的操作系统是Windows、Mac OS X或Linux,那么你就应该可以顺利运行MySQL。

下面我们就开始下载MySQL的安装包吧:

2.1下载地址

https://www.mysql.com/
在这里插入图片描述

2.2打开官网,点击DOWNLOADS

在这里插入图片描述

2.3往下拉,选择社区版

在这里插入图片描述

2.4点击图中框选的MySQL Community (GPL) Downloads,页面跳转后再点击下图中框选的

在这里插入图片描述

2.5选择版本

选择压缩的tar文件。
在这里插入图片描述

2.6下载
点击图中框选位置,无需登录直接下载。
在这里插入图片描述

三、MySQL安装

3.1 wget命令安装

阿里云ECS服务器,已经自带了wget命令,如果你是阿里云服务器无需安装,可跳过当前步骤。
虚拟机服务或未安装wget命令的服务器,可以使用如下命令安装。

yum install wget -y

3.2 使用wget命令下载Mysql 安装包

wget https://dev.mysql.com/get/Downloads/MySQL-8.2/mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz

3.3解压缩

由.tar.zx文件,变为tar文件

xz -d mysql-8.2.0-linux-glibc2.28-x86_64.tar.xz

提取Mysql文件

tar xf mysql-8.2.0-linux-glibc2.28-x86_64.tar

3.4移动文件位置(不想移动的可以跳过此步骤)

一般情况我们把文件安装在/user/local目录下

mv mysql-8.2.0-linux-glibc2.28-x86_64 /usr/local/mysql

3.5 创建Mysql系统账号(此步骤也可以跳过)

一般情况下我们是不会使用root账号,进行开发的。

首先进入到mysql文件目录

cd /usr/local/mysql/

建立Mysql账号

adduser mysql

3.6 Mysql配置文件

一般情况下,Mysql配置文件是在/etc/my.cnf这个目录下

vi /etc/my.cnf

我打开的my.cnf文件是空的,因为我的是一个全新的阿里云ECS服务器,没有my.cnf文件
下面是我的my.cnf文件

[client]
# 指定端口号,也是默认端口 #
port            = 3306
socket          = /usr/local/mysql/data/mysql.sock
[mysqld]
# Skip #
skip_name_resolve              = 1
skip_external_locking          = 1 
skip_symbolic_links     = 1
# GENERAL #
user = mysql
# 设置默认存储引擎 InnoDB #
default_storage_engine = InnoDB
# 数据库默认字符集    Mysql 8.0默认字符集,utf8mb4# 
character-set-server = utf8
#小知识点,utf8字符集,其实就是utf8mb3,utf8==utf8mb3#
socket  = /usr/local/mysql/data/mysql.sock
pid_file = /usr/local/mysql/data/mysqld.pid
# Mysql 安装目录 # 
basedir = /usr/local/mysql
# 服务端启动端口 #  
port = 3306
bind-address = 0.0.0.0
explicit_defaults_for_timestamp = off
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
#read_only=on
# MyISAM #
key_buffer_size                = 32M
#myisam_recover                 = FORCE,BACKUP

# undo log #
# undo日志目录,用于事物回滚的日志目录 #
innodb_undo_directory = /usr/local/mysql/undo
# 日志文件一共设置8个 #
innodb_undo_tablespaces = 8

# SAFETY #
# 每次所允许执行的Sql的最大包是100M #
max_allowed_packet             = 100M
max_connect_errors             = 1000000
sysdate_is_now                 = 1
#innodb = FORCE
#innodb_strict_mode = 1
secure-file-priv='/tmp'
default_authentication_plugin='mysql_native_password'
# Replice Mysql 主从复制的主要配置,根据自己的项目进行配置,这里省略 #
 server-id = 1001
 relay_log = mysqld-relay-bin
 gtid_mode = on
 enforce-gtid-consistency
 log-slave-updates = on
 master_info_repository =TABLE
 relay_log_info_repository =TABLE


# DATA STORAGE #
# Mysql 数据目录 #
 datadir = /usr/local/mysql/data/
 tmpdir = /tmp
 
# BINARY LOGGING #
# Mysql 日志目录 ,二进制日志文件是以 mysql-bin开头的 #
 log_bin = /usr/local/mysql/sql_log/mysql-bin
 max_binlog_size = 1000M
 binlog_format = row
 binlog_expire_logs_seconds=86400
# sync_binlog = 1

# CACHES AND LIMITS Mysql内存的相关配置 #
# 临时表大小 #
 tmp_table_size                 = 32M
 max_heap_table_size            = 32M
# 允许最大连接数 #
 max_connections                = 4000
 thread_cache_size              = 2048
 open_files_limit               = 65535
 table_definition_cache         = 4096
 table_open_cache               = 4096
# 排序缓存大小 #
 sort_buffer_size               = 2M
# 读缓存大小 #
 read_buffer_size               = 2M
# 表扫描执行的大小 #
 read_rnd_buffer_size           = 2M
# thread_concurrency             = 24
# 表连接的大小 #
 join_buffer_size = 1M
# table_cache = 32768
 thread_stack = 512k
 max_length_for_sort_data = 16k


# INNODB  InnoDB重要配置 #
 innodb_flush_method            = O_DIRECT
 innodb_log_buffer_size = 16M
 innodb_flush_log_at_trx_commit = 2
 innodb_file_per_table          = 1
# InnoDB缓冲池大小,我的服务器比较小,所以设置的比较小 #
 innodb_buffer_pool_size        = 256M
# 实际项目中需根据自己的服务器配置进行适量调整 #
 #innodb_buffer_pool_instances = 8
 innodb_stats_on_metadata = off
 innodb_open_files = 8192
 innodb_read_io_threads = 16
 innodb_write_io_threads = 16
 innodb_io_capacity = 20000
 innodb_thread_concurrency = 0
 innodb_lock_wait_timeout = 60
 innodb_old_blocks_time=1000
 innodb_use_native_aio = 1
 innodb_purge_threads=1
 innodb_change_buffering=all
 innodb_log_file_size = 64M
 innodb_log_files_in_group = 2
 innodb_data_file_path  = ibdata1:256M:autoextend
 
 innodb_rollback_on_timeout=on
 # LOGGING #
 log_error                      = /usr/local/mysql/sql_log/mysql-error.log
 # log_queries_not_using_indexes  = 1
 # slow_query_log                 = 1
  slow_query_log_file            = /usr/local/mysql/sql_log/slowlog.log

 # TimeOut #
 #interactive_timeout = 30
 #wait_timeout        = 30
 #net_read_timeout = 60

[mysqldump]
quick
max_allowed_packet = 100M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

因配置文件中使用了到了一些目录,我的服务器上没有,所以我们先创建一下目录,要先进入到mysql目录下

cd /usr/local/mysql

mkdir data sql_log undo

3.7 给mysql用户增加文件权限

在这里插入图片描述
当前文件目录是只属于root用户的,上面创建的mysql用户无法访问。

执行如下命令

chown mysql:mysql -R data/  sql_log/ undo/

在这里插入图片描述
现在这些目录就变成了mysql,这样我们用mysql账号启动mysql服务的时候,就可以对这些目录进行访问的读写操作了

3.8 Mysql 系统变量配置

vi /etc/profile

在文件末尾增加如下配置

export  PATH=$PATH:/usr/local/mysql/bin

这样我们就可以在任何目录中使用mysql命令了

刷想配置文件,应用系统参数

source /etc/profile

3.9 初始化Mysql

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

如果报错

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

解决办法:
根据内容缺少了libaio.so.1的依赖库,所以进行安装

yum install -y libaio

在这里插入图片描述

再次执行上面的命令

进入data目录查看是否有文件,判断是否初始化成功
在这里插入图片描述
如果和图片上一样,说明初始化成功了

四、启动Mysql

4.1 拷贝启动脚本到etc目录下,并启动脚本

cd /usr/local/mysql/support-files/

cp mysql.server /etc/init.d/mysqld

/etc/init.d/mysqld start

在这里插入图片描述
说明启动成功了

可以使用如下命令查看

ps -ef | grep mysql

在这里插入图片描述

4.2 查看Mysql root用户的初始化密码,并修改密码

cd /usr/local/mysql/sql_log/

grep password mysql-error.log

mysql -uroot -p

alter user user() identified by '输入你得秘密';

根据你自己的初始化密码进行输入。
获得初始化密码:<1&W8#h9wp.e

在这里插入图片描述

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐