背景:操作系统 Debian10.x ,x86_64
1、下载MySQL8安装包(请在路径 /usr/local 下操作,为了方便)
#没有wget命令请自行安装
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
2、解压
#解压
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
#重命名
mv mysql-8.0.31-linux-glibc2.12-x86_64 mysql8
3、创建my.cnf配置文件
#请先查找 /etc/my.cnf 或 /etc/mysql/my.cnf
#没有则创建my.cnf
mkdir /etc/my.cnf
3.1 my.cnf添加配置项
#将以下内容粘贴到该文件中
[mysqld]
#指向服务路径
basedir=/usr/local/mysql8/
#指向数据库
datadir=/usr/local/mysql8/data/
socket=/tmp/mysql.sock
#设置字符集
character-set-server=UTF8MB4
#设置不区分大小写,Linux默认区分大小写
lower_case_table_names=1
#设置上传大小限制
max_allowed_packet=200M
![](https://img-blog.csdnimg.cn/direct/7097eaa02365409a96aae8338433bca9.png)
3.2 添加用户和用户组
#添加用户组
groupadd mysql
#添加用户
useradd -g mysql mysql
4、初始化数据库(保存初始化密码)
#在mysql8安装目录下,创建data文件夹
mkdir data
#请先进入到mysql8安装目录的bin目录下,执行
./mysqld --user=mysql --basedir=/usr/local/mysql8 --datadir=/usr/local/mysql8/data/ --initialize --lower_case_table_names=1
![](https://img-blog.csdnimg.cn/direct/466dcb6ac2e14d859ae363f9175cd364.png)
4.1 复制启动文件
#进入到MySQL安装目录的/mysql8/support-files文件下
cp mysql.server /etc/init.d/mysqld
#编辑该文件,大概在46,47行
vi /etc/init.d/mysqld
#修改为如下
basedir=/usr/local/mysql8
datadir=/usr/local/mysql8/data
#重载配置文件
systemctl daemon-reload
![](https://img-blog.csdnimg.cn/direct/5e9cde85d4a3485fa6594b322d4d5510.png)
4.2 配置环境变量
vi /etc/profile
#在最下方添加
export PATH=$PATH:/usr/local/mysql8/bin
#刷新配置文件
source /etc/profile
#校验环境变量
mysql -V
![](https://img-blog.csdnimg.cn/direct/11a0eeda62e741619fa2a49ac66d7074.png)
![](https://img-blog.csdnimg.cn/direct/aa1a0e116e134f819aa5cbac281fc73a.png)
5、启动数据库
#启动
systemctl start mysqld
#查看状态
systemctl status mysqld
#关闭
systemctl stop mysqld
#重启
systemctl restart mysqld
![](https://img-blog.csdnimg.cn/direct/cbc49309fe6b437c9a4a94f2dce86673.png)
6、修改密码
#进入mysql命令窗口,执行后输入初始化的密码
mysql -u root -p
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#立即生效
flush privileges;
#进入mysql数据库
use mysql;
#修改远程连接并生效
update user set host='%' where user='root';
flush privileges;