一. 准备工作

1.下载

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

2.解压

tar -xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

3.重命名

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8

4.移动文件到指定目录

mv mysql8 /dev_tools/mysql8

5.切换到对应目录

cd /dev_tools/mysql8

二. 开始安装

6.先创建数据存储文件夹

mkdir data

7.创建用户组以及用户和密码

groupadd mysql
# 为添加的用户指定相应的用户组
useradd -g mysql mysql

8.授权用户

#将/dev_tools/mysql8及其子目录和文件递归处理改变所有者
chown -R mysql.mysql /dev_tools/mysql8

9.切换到bin目录下

cd bin

10.初始化基础信息

./mysqld --user=mysql --basedir=/dev_tools/mysql8 --datadir=/dev_tools/mysql8/data/ --initialize

注意:

如果在这里报错:

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

出现该问题首先检查该链接库文件有没有安装使用 rpm -qa|grep libaio命令进行核查

运行该命令后发现系统中无该链接库文件

使用命令,yum install libaio-devel.x86_64安装

安装成功后,继续运行数据库的初始化命令,成功后得到临时密码,记得保存,等会需要用

11.编辑/etc/my.cnf

vim /etc/my.cnf

内容:

[mysqld]
   # 设置3306端口
   port=3306
   # 设置mysql的安装目录
   basedir=/dev_tools/mysql8
   # 设置mysql数据库的数据的存放目录
   datadir=/dev_tools/mysql8/data
   # 允许最大连接数
   max_connections=200
  # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
  max_connect_errors=10
  # 服务端使用的字符集默认为UTF8
  character-set-server=utf8
  # 创建新表时将使用的默认存储引擎
  default-storage-engine=INNODB
  # 默认使用“mysql_native_password”插件认证
  default_authentication_plugin=mysql_native_password
  
  [mysql]
  # 设置mysql客户端默认字符集
  default-character-set=utf8
  [client]
  # 设置mysql客户端连接服务端时默认使用的端口
  port=3306
  default-character-set=utf8

12.添加mysqld服务到系统

这里要切换到安装目录下执行

cd /dev_tools/mysql8
cp -a ./support-files/mysql.server /etc/init.d/mysql

13.授权以及添加服务

# 添加可执行权限
chmod +x /etc/init.d/mysql
# 添加服务
chkconfig --add mysql

14.启动mysql服务

service mysql start

15.查看启动状态

service mysql status

16.将mysql命令添加到服务

ln -s /dev_tools/mysql8/bin/mysql /usr/bin
# 如果存在了,覆盖就执行
ln -sf /usr/local/mysql/mysql-8.0.20/bin/mysql /usr/bin

三. 登录改密码配置

17.用临时密码登录

mysql -uroot -p

此时若出现错误mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory

解决方法如下

联网状态或者有yum源可以直接安装缺失的包文件:

yum install libncurses* -y

18.修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; 
flush privileges;

其中your_password是新的密码

19.刷新权限, 设置可以远程连接

use mysql;
update user set host='%' where user='root';
flush privileges;
exit;

20.放开端口重启防火墙

firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload

21.(可选)关闭端口重启防火墙

firewall-cmd --add-port=6379/tcp --permanent
firewall-cmd --reload

遇到的坑
初始化完成后, 修改配置文件,添加 lower_case_table_names=1 设置sql大小写敏感后启动服务报错如下图

Linux安装MySQL8morendizhi_mysql

原因在mysql官方文档中有写:
lower_case_table_names can only be configured when initializing the server. Changing the lower_case_table_names setting after the server is initialized is prohibited.
Lower_case_table_names只能在初始化服务器时配置。服务初始化后禁止修改lower_case_table_names。