CentOS7.9安装mysql8.0

网上各种安装教程五花八门,各种报错,所以整理了一个完整版本,以下教程作者在2台新服务器测试安装均无问题。

一.下载mysql

下载地址:MySQL :: Download MySQL Community Server (Archived Versions)

或者直接执行命令

wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

二.解压mysql

执行命令

tar -xvf mysql-8.0.33-1.el7.x86_64.rpm-bundle.tar

三.安装前的准备

1.卸载mariadb

rpm -qa|grep mariadb            #检查是否安装mariadb
rpm -e --nodeps mariadb-libs    #卸载
rpm -qa|grep mariadb            #再次检查

 2.检查 libaio

rpm -qa|grep libaio    #查看是否安装libaio
yum -y install libaio  #yum进行安装

3.检查 net-tools 

rpm -qa|grep net-tools    #查看是否安装net-tools
yum -y install net-tools  #yum进行安装

4.安装openssl-devel依赖

yum -y install openssl-devel

四.开始安装

1.进入到mysql解压目录开始安装

rpm -ivh mysql-community-common-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-plugins-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.33-1.el7.x86_64.rpm  --nodeps --force
rpm -ivh mysql-community-libs-compat-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-devel-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-icu-data-files-8.0.33-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.33-1.el7.x86_64.rpm --nodeps --force

按照上面顺序依次执行命令,如果各位安装遇到了错误可以留言,也可以在留言区分析错误如何解决,目前我上面方式已经在2台服务器测试没问题。

五.启动mysql

systemctl start mysqld        #启动
systemctl restart mysqld      #重启
systemctl status mysqld       #查看状态
systemctl stop mysqld         #关闭

六.后续配置操作

1.查看默认mysql密码

/var/log/mysqld.log

A temporary password is generated for root@localhost: kjasdo)912!

2.登录mysql,修改密码(第一次登录进来必须要修改密码)

mysql -uroot -p
Enter password: #输入默认密码登录进去
use mysql;
// 修改密码
ALTER USER 'root'@'localhost' identified  by '121212';
//开启远程登陆
update user set host='%' where user='root';
flush privileges;

mysql配置文件目录: vim /etc/my.cnf

至此mysql可以正常使用了

七.常见错误解决

1.远程无法访问

//关闭防火墙
systemctl stop firewalld
//开始3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

2.关闭selinux

# 临时生效
[root@localhost ~]# setenforce 0
# 永久生效,需要重启系统
[root@localhost ~]# sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
[root@localhost ~]# reboot

3.配置Mysql表明不区分大小写配置

//配置Mysql表明不区分大小写配置
/etc/my.cnf
lower_case_table_names=1

//停止mysql
systemctl stop mysqld

//删除mysql数据
datadir=/home/app/data/mysql
socket=/var/lib/mysql/mysql.sock

// 重新生成mysql初始化文件,最好别用root建议把root改成mysql
sudo /usr/sbin/mysqld --initialize --user=root
方式2
sudo /usr/sbin/mysqld --initialize --user=root --lower-case-table-names=1

4.解决mysql8.0忘记密码

// 在/etc/my.cnf配置加上
skip-grant-tables

// 执行下面命令
mysql -uroot -p 
提示输入密码直接回车

// 密码设置成空,下次登陆会提示让你输入修改密码
UPDATE user SET authentication_string=password('') WHERE user='root'

flush privileges;

5.报错ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

MySQL版本5.7.6版本以前用户可以使用如下命令:
mysql> SET PASSWORD = PASSWORD('Admin2022!');

MySQL版本5.7.6版本开始的用户可以使用如下命令:
mysql> ALTER USER USER() IDENTIFIED BY 'Admin2022!';

八.Mysql常用配置

bind-address=0.0.0.0
port=3306
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000
max_connect_errors=1000
#开启区分大小写
lower_case_table_names=1
#这个值(默认8)表示可以重新利用保存在缓存中线程的数量,当断开连接时如果缓存中还有空间,那么客户端的线程将被放到缓存中,
# 根据物理内存设置规则如下:

# 1G  —> 8

# 2G  —> 16

# 3G  —> 32

# 大于3G  —> 64
query_cache_size=64M
query_cache_limit = 64M
key_buffer_size = 64M
  1. 初始化,此时就会根据我们更改的新配置文件就行配置
    sudo mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql

如有哪里有不对欢迎指出

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值