前言
提示:安装mysql服务器时所需libaio依赖和openssl依赖,如果存在mariadb库的话要卸载,这个库跟mysql冲突。我用的Cenos7版本操作系统,自带libaio依赖和openssl依赖。
查看是否存在mariadb库:
rpm -qa|grep mariadb
卸载mariadb库:
rpm -e --nodeps mariadb-libs
如果没有libaio依赖,通过以下命令安装即可:
yum install libaio
一、服务器环境
1. 阿里云ECS服务器:
2.下载MySQL
下载地址
下载成功
二、安装步骤
1.连接远程服务器
以MobaXterm工具为例:
Remote host : 服务器ip地址(如果是云服务器的话,输入公网IP)
Port : 22 (默认)
然后输入自己的账号、密码登录服务器
2.把mysql压缩包丢到服务器上并解压
#解压命令
tar -xvf mysql-8.0.32-1.el7.x86_64.rpm-bundle.tar
解压后如下图
因为包与包之前存在依赖关系,所以要按顺序执行:
rpm -ivh mysql-community-common-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.32-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.32-1.el7.x86_64.rpm
三、赋予权限
提示:给拥有mysql目录权限的用户、用户组赋予操作权限
chown -R mysql:mysql /var/lib/mysql
四、数据初始化
mysqld --initialize --console
五、使用MySQL
提示:在mysl安装完成之后会生成一个临时密码用于登录
1、开启服务
systemctl start mysqld
2.使用临时密码登录,成功后修改密码
# 修改root的密码与加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
# 切换到mysql库
use mysql;
# 更改可以登录的IP为任意IP
update user set host='%' where user = 'root';
# 刷新权限
flush privileges;
#修改加密方式,mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式(如果账号、密码明明正确,却登录不上可能就是没修改这加密方式)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
# 刷新权限
flush privileges;
六、使用工具连接Mysql服务器
提示:我使用的sqlyog
七、安装过程中报错
- 安装mysql-community-server报错缺少依赖:
下载所需要依赖:
wget https://mirrors.aliyun.com/centos/8.5.2111/AppStream/x86_64/os/Packages/compat-openssl10-1.0.2o-3.el8.x86_64.rpm
安装:
rpm -ivh compat-openssl10-1.0.2o-3.el8.x86_64.rpm --nodeps --force
然后mysql-community-server就可以安装了。
2.服务器可以进入mysql,但本地远程工具报错:
mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式,所以要修改加密方式。
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
3.启动Mysql服务时报错:
查看日志报错信息:
cat /var/log/mysqld.log
日志显示报错:
2023-02-06T02:31:17.850663Z 0 [ERROR] [MY-010183] [Server] Failed to create file(file: ‘/var/lib/mysql/auto.cnf’, errno 13)
但我看/var/lib/mysql目录下已经有这个文件了,于是重新执行下chown -R mysql:mysql /var/lib/mysql。(这个问题基本是文件与用户操作权限的原因)
Mysql服务成功启动。