Linux安装MySQL详细教程
前言
MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
一、下载mysql安装包地址
选择对应的包 mysql 8.X(因为我装的系统是debian系统所以我选择的是对应的版本)
mysql离线安装链接 : downloads

下载好后传到服务器中
二、环境准备
1、查看是否已经安装 Mysql
# 如果没有什么返回信息,说明没有安装 Mysql
rpm -qa | grep mysql
2、清空 /etc/ 目录下的 my.cnf
执行以下命令删除 my.cnf 文件:
rm -rf /etc/my.cnf
3、删除 mariadb
使用 yum 命令删除 mariadb:
# 卸载mariadb,mariadb和mysql一起安装会有冲突,所以需要卸载掉
rpm -qa | grep mariadb
yum -y remove mariadb
4、清空带有 mysql 的所有文件:
使用 find 命令查找并删除所有包含 mysql 的文件:
find / -name "*mysql*" -exec rm -rf {} \;
5、检查并安装依赖库
查看是否安装了 MySQL 依赖库 libaio,如果没有安装则进行安装:
yum list installed |grep libaio
若未安装,执行以下命令安装:
yum -y install libaio
6、 解压 MySQL 压缩包并更名
解压 MySQL 压缩包:
tar xvJf mysql-8.0.42-linux-glibc2.17-x86_64.tar.xz
附注:tar 命令参数解释:
-x:解开已有的归档文件-v:显示详细的过程-J:使用xz压缩或解压归档文件-f:指定归档文件名
重命名解压后的文件夹:
mv mysql-8.0.42-linux-glibc2.17-x86_64 /data/mysql-8.0.42

创建 data 文件夹:
mkdir /data/mysql-8.0.42/data
mkdir /data/mysql-8.0.42/logs
8. 创建 mysql 组和用户
由于MySQL 8出于安全性考虑默认不支持使用 root 用户直接启动 mysqld 服务
# 创建 mysql 组
groupadd mysql
# 创建 mysql 用户
useradd -g mysql mysql
添加权限:
chown -R mysql:mysql /data/mysql-8.0.42
三、设置 MySQL 配置文件 my.cnf
使用 vim 编辑器打开并编辑 /etc/my.cnf 文件:
vim /etc/my.cnf
配置内容如下:
[mysqld]
# 设置 MySQL 服务监听端口,默认 3306
port=3306
# 设置 MySQL 服务器绑定的 IP 地址,可以设置为自己本机 IP
bind-address=0.0.0.0
# 设置 MySQL 数据库用户
user=mysql
# 数据库文件路径
basedir=/opt/module/mysql-8.0.42
# 数据库数据目录,存储数据库文件的路径
datadir=/data/mysql/data
# 设置 MySQL 服务器使用的套接字文件路径
socket=/data/mysql/mysql.sock
# datadir=/var/lib/mysql
# socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
# 设置每个连接的默认字符集
character_set_server=utf8mb4
explicit_defaults_for_timestamp=true
lower_case_table_names = 1
# 配置 MySQL 的自动扩展参数
innodb_autoextend_increment=64
log-error=/data/mysql/logs/mysql.log
pid-file=/data/mysql/mysql.pid
[mysqld_safe]
# 设置指定存放进程 ID 的文件
log-error=/data/mysql/logs/mysql.log
pid-file=/data/mysql/mysql.pid
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid
[client]
socket=/data/mysql/mysql.sock
#
# include all files from the config directory
#
# !includedir /etc/my.cnf.d
四、Mysql 初始化
Linux 中的 MySQL 默认是区分表名大小写的,如果你安装的是 MySQL 8,需要在数据库初始化时设置不区分大小写,否则初始化后在配置文件中设置并重启时会报错。
使用 mysql 的 bin 下面的 mysqld 脚本进行初始化:
/data/mysql-8.0.42/bin/mysqld --initialize --user=mysql --basedir=/data/mysql-8.0.42 --datadir=/data/mysql-8.0.42/data
判断是否初始化成功:

设置 ssl 安全加密连接
# 进入mysql根目录
./bin/mysql_ssl_rsa_setup --datadir=/data/mysql-8.0.42/data
五、启动并登录 MySQL,设置 MySQL 开机自启动
1、复制 MySQL 自带的 mysql.server 脚本为 mysqld 并放到 /etc/init.d/
cp /data/mysql-8.0.42/support-files/mysql.server /etc/init.d/mysqld
# 一下都要执行
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
systemctl daemon-reload
这个脚本是 MySQL 官方专门提供的启动脚本,适配各种 init 系统。
⚠️ 注意:文件名一定要叫
mysqld,systemd 才会识别并包装为mysqld.service
2、启动服务
systemctl start mysqld
# 查看状态
systemctl status mysqld
3、配置环境变量
sudo bash -c "cat >> /etc/profile <<'EOF'
export PATH=\$PATH:/data/mysql-8.0.42/bin:/data/mysql-8.0.42/lib
EOF"
# 刷新环境变量
source /etc/profile
4、登录 mysql
查看默认密码:
cat /data/mysql-8.0.42/logs/mysql.log
启动mysql
service mysqld start
mysql -u root -p
密码就是刚刚初始化成功的密码 ,在/data/mysql/logs日志文件中
登录成功后会提示你重置密码,修改密码:
alter user 'root'@'localhost' identified by 'root123'; #修改密码
use mysql;
update user set host='%' where user='root';
flush privileges;
grant all privileges on *.* to 'root'@'%' ;
flush privileges;
quit;
退出:
quit
重启服务:
systemctl restart mysqld
再次登陆:
/opt/module/mysql-8.0.42/bin/mysql -u root -p
输入刚修改的密码,按回车键。到此,MySQL 已经安装完成…毕业了!!!
299






