1. 检查是否安装历史版本,如果有则删除相关文件
rpm -qa|grep mysql
# 如果存在则删除
rpm -ev [组件名称]
# 查找残留文件
find / -name mysql
# 删除配置
rm -rf /etc/my.cnf
# 删除数据目录
cd /var/lib/mysql
rm -rf *
# 查找依赖
rpm -qa | grep mysql
# 如果有则删除
rpm -e [mysql_libs]
# 若删除失败则强力删除
rpm -e --nodeps [mysql_libs]
rpm -qa | grep mariadb
rpm -e --nodeps [mariadb]
2. 下载mysql8.0
wget http://mirrors.tuna.tsinghua.edu.cn/mysql/yum/mysql80-community-el7/mysql80-community-release-el7-1.noarch.rpm
failure: repodata/repomd.xml from xxx: [Errno 256] No more mirrors to try.
https://download.xxx.com/linux/centos/2.1903/x86_64/stable/repodata/repomd.xml: [Errno 14] HTTPS Error 404 - Not Found
- 这有可能是Alibaba Cloud Linux 2.1903的Centos版本的问题,可以有以下两种解决方法:
- 下载Centos7 yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum list
yum makecache
- 找到/etc/yum.repos.d下的repo文件, 将其中的所有$releasever替换成7
3. 安装mysql
# 安装mysql依赖包
yum install -y libaio
# 安装mysql
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum install mysql-server
- 若出现Public key for mysql-community-server-5.7.37-1.el7.x86_64.rpm is not installed则需要更新mysql的GPA
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 然后再安装
yum install mysql-server
4. 配置并启动mysql
- 设为开机启动
# 检查是否开机启动
systemctl list-unit-files|grep mysqld
# 若没有则设为开机启动
systemctl enable mysqld.service
- 初始化mysql
mysqld --initialize
# 查看初始化密码
grep 'temporary password' /var/log/mysqld.log
# 登录mysql
mysql -uroot -p
- 可能会出现的报错:
- 如果出现
Can't connect to local MySQL server through socket '/var/lib /mysql/mysql.sock' (111)
# 进入报错路径并删除mysql.sock,再重启服务
cd /var/lib/mysql/
rm -rf mysql.sock
systemctl stop mysqld
systemctl start mysqld
// 然后登入mysql查看是否正常
mysql -u root -p
- 如果启动报错
service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
chown mysql:mysql -R /var/lib/mysql
- 如果出现
Failed to start mysqld.service: Unit not found
yum -y install mariadb mariadb-devel mariadb-server
- 修改密码
alter user 'root'@'localhost' identified by '12345678';
- 如果提示
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
set global validate_password.policy=0;
- 远程授权
grant all privileges on *.* to 'root'@'%' identified by '12345678' with grant option;
- 如果出现
check the manual that corresponds to your MySQL server version for the right syntax to
- 原因是我采用的mysql版本是8.0.13,给新用户授权时有所变化
-- 创建账户
create user 'root'@'xxx.xxx.xxx.xxx' identified by 'password'
-- 授权,with grant option指该用户可以将自己拥有的权限授权给别人
grant all privileges on *.* to 'root'@'xxx.xxx.xxx.xxx' with grant option
flush privileges;