下载
https://downloads.mysql.com/archives/community/

根据自己的 linux,选择 mysql 版本,我用的是 Alibaba Cloud Linux 3.2104 LTS 64 位,
选择:mysql-8.0.32-linux-glibc2.12-x86_64.tar
先在windows系统上解压成tar格式,再导入到linux,使用tar命令解包。
tar 命令
解包:tar xvf FileName.tar
打包:tar cvf FileName.tar DirName
可使用 MobaXterm、SSH 等工具辅助完成上述步骤,解压后的目录结构如下:

安装
新建 mysql 配置文件
touch /etc/my.cnf
vim /etc/my.cnf
将下列内容复制到my.cnf文件中,可按需调整内容。
[mysql]
socket=/usr/local/mysql/data/mysql.sock
[mysqld]
# 基本路径
basedir=/usr/local/mysql
# 数据路径 (先在/usr/local/mysql建data目录)
datadir=/usr/local/mysql/data
# socket文件
socket=/usr/local/mysql/data/mysql.sock
symbolic-links=0
# 错误日志
log-error=/usr/local/mysql/data/mysqld.log
# pid文件
pid-file=/usr/local/mysql/data/mysqld.pid
设置环境变量
设置完环境变量之后,可以在任意位置使用 mysql 命令。
编辑文件
vim /etc/profile
在文件末尾复制粘贴下列内容
export MYSQL_HOME=/usr/local/mysql
export MYSQL_PATH=$MYSQL_HOME/bin
export PATH=$PATH:$MYSQL_PATH
立即生效
source ~/.bash_profile
查看环境变量
env
增加用户组
需要避免所有人都用 root 账号,创建一个 mysql 专用账号
创建用户组:groupadd mysql
创建用户:useradd -r -g mysql mysql
设置密码:passwd [user]
启动 mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
直接执行通常会报错,需要先执行下一句
yum install -y libaio
重新执行命令,启动 mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
cd /usr/local/mysql/support-files/
./mysql.server start
在etc/init.d目录添加 mysql 启停脚本
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql //拷贝mysql.server
chmod +x /etc/init.d/mysql //添加可执行权限。
chkconfig --add mysql // 注册启动服务
chkconfig --list //查看是否添加成功
出现下列内容表示成功

修改root账号的密码
修改 my.cnf 文件,在 [mysqld] 代码块添加一行:
skip-grant-tables
执行下列命令
# 重启mysql服务
service mysql restart
# 无密码进入,直接回车即可
mysql -u root -p
# 修改root的密码
alter user 'root'@'localhost' identified by 'root';
# 刷新保存,不执行的话 alter 这一行会报错,执行完这个就好了
flush privileges;
处理结束,记得删除刚刚在 my.cnf 新增的这一行数据,尝试使用root账号登录。

因为安装的是最新的 mysql,老版本 navicat 登录可能会报错,报错信息包含: “caching_sha2_password……” 等内容,执行下面一句即可
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
Docker环境下安装mysql
并不是很推荐把 mysql 安装到 docker 下,数据库是程序最优价值的部分,要考虑数据备份、修复等相关问题。
通常情况下,很可能一整台机子只用于数据库,连多余的应用程序都不会有,更不可能出现docker;
将 mysql 安装到 docker 容器,除了需要处理 mysql 的问题,还需要考虑 docker 环境自身的问题(意外关闭、系统奔溃等等),
多了个docker,相当于平白无故多了一些风险项。
镜像拉取/删除
docker pull mysql:5.7
docker rmi -f mysql:5.7
创建容器
docker run -di --name=mysql57 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE='med' mysql:5.7
参数说明:
-p 3307:3306 将容器3306端口映射到主机3307
-e MYSQL_ROOT_PASSWORD=root 设置初始密码为root
-e MYSQL_DATABASE='med' 初始创建数据库med
添加防火墙策略,从本机(PC)访问
firewall-cmd --list-all
firewall-cmd --add-port=3307/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all