原创

CentOS7安装MySQL8数据库


安装前的检查工作

1、检查系统是否有mariadb或mysql正在运行

ps ajx | grep mariadb
ps ajx | grep mysql

如果有,需要先停止运行

systemctl stop mariadb.service
systemctl stop mysqld

2、检查系统中是否安装了mariadb或mysql

rpm -qa | grep mariadb
rpm -qa | grep mysql

如果有安装,则需要先卸载干净

yum -y remove 软件名(根据以上查询结果复制)

检查是否存在配置文件 /etc/my.cnf,重命名备份或者删除

配置yum源

查看系统的版本,下载yum源的时候需要匹配

cat /etc/redhat-release

1、从mysql镜像官网(http://repo.mysql.com/)获取yum源 根据名字确定版本和对应linux版本

例如:

mysql80-community-release-el7-9.noarch.rpm
80表示mysql8.0版本
el7-9表示适配Linux7.9(直接选择大版本也行,不过尽量还是能对应到小版本)

2、将下载到的yum源文件上传到服务器

各显神通,想怎么传就怎么传

传到 /etc/yum.repos.d 文件夹下

3、执行安装命令

rpm -ivh yum源包名(刚刚上传的文件)
例如:
rpm -ivh mysql80-community-release-el7-9.noarch.rpm

查看/etc/yum.repos.d是否多出mysql开头,repo结尾的文件

4、测试yum源是否可用

yum list |grep mysql

展示出刚刚下载版本的mysql安装包,即表示yum源配置成功。

正式安装

1、执行安装命令

yum install -y mysql-community-server

2、出现密钥不适用的情况

源 "MySQL 8.0 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。
 失败的软件包是:mysql-community-server-8.0.36-1.el7.x86_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql-2022, file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

导入最新的密钥文件

rpm --import  https://repo.mysql.com/RPM-GPG-KEY-mysql-2023

RPM-GPG-KEY-mysql-2023这个密钥文件需要从镜像官网(http://repo.mysql.com/)获取最新的

3、安装成功

已安装:
  mysql-community-server.x86_64 0:8.0.36-1.el7

作为依赖被安装:
  mysql-community-client.x86_64 0:8.0.36-1.el7  mysql-community-client-plugins.x86_64 0:8.0.36-1.el7  mysql-community-common.x86_64 0:8.0.36-1.el7  mysql-community-icu-data-files.x86_64 0:8.0.36-1.el7  mysql-community-libs.x86_64 0:8.0.36-1.el7
  net-tools.x86_64 0:2.0-0.25.20131004git.el7   perl.x86_64 4:5.16.3-299.el7_9                        perl-Carp.noarch 0:1.26-244.el7               perl-Encode.x86_64 0:2.51-7.el7                       perl-Exporter.noarch 0:5.68-3.el7
  perl-File-Path.noarch 0:2.09-2.el7            perl-File-Temp.noarch 0:0.23.01-3.el7                 perl-Filter.x86_64 0:1.49-3.el7               perl-Getopt-Long.noarch 0:2.40-3.el7                  perl-HTTP-Tiny.noarch 0:0.033-3.el7
  perl-PathTools.x86_64 0:3.40-5.el7            perl-Pod-Escapes.noarch 1:1.04-299.el7_9              perl-Pod-Perldoc.noarch 0:3.20-4.el7          perl-Pod-Simple.noarch 1:3.28-4.el7                   perl-Pod-Usage.noarch 0:1.63-3.el7
  perl-Scalar-List-Utils.x86_64 0:1.27-248.el7  perl-Socket.x86_64 0:2.010-5.el7                      perl-Storable.x86_64 0:2.45-3.el7             perl-Text-ParseWords.noarch 0:3.29-4.el7              perl-Time-HiRes.x86_64 4:1.9725-3.el7
  perl-Time-Local.noarch 0:1.2300-2.el7         perl-constant.noarch 0:1.27-2.el7                     perl-libs.x86_64 4:5.16.3-299.el7_9           perl-macros.x86_64 4:5.16.3-299.el7_9                 perl-parent.noarch 1:0.225-244.el7
  perl-podlators.noarch 0:2.5.1-3.el7           perl-threads.x86_64 0:1.87-4.el7                      perl-threads-shared.x86_64 0:1.43-6.el7

完毕!

出现以上信息,表示安装成功

4、验证安装成功

[root@localhost ~]# ls /etc/my.cnf
/etc/my.cnf
[root@localhost ~]# which mysqld
/usr/sbin/mysqld
[root@localhost ~]# which mysql
/usr/bin/mysql

以上信息表示安装成功

配置编码

vim /etc/my.cnf

添加以下配置

character-set-server=utf8
default-storage-engine=innodb

配置后,重启数据库生效。

mysql相关操作

1、查看mysql运行状态

systemctl status mysqld.service

2、启动mysql

systemctl start mysqld.service

3、停止mysql

systemctl stop mysqld.service

4、重启mysql

systemctl restart mysqld.service

修改密码

1、查看初始密码

[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2024-04-15T01:54:50.429650Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: lQ(uaDq6v!dU

以上信息显示初始密码为:lQ(uaDq6v!dU

2、登录mysql

mysql -uroot -p

输入密码,输入的时候不会显示密码

3、修改策略(这步可跳过)

mysql> SHOW VARIABLES LIKE 'validate_password%';
+-------------------------------------------------+--------+
| Variable_name                                   | Value  |
+-------------------------------------------------+--------+
| validate_password.changed_characters_percentage | 0      |
| validate_password.check_user_name               | ON     |
| validate_password.dictionary_file               |        |
| validate_password.length                        | 8      |
| validate_password.mixed_case_count              | 1      |
| validate_password.number_count                  | 1      |
| validate_password.policy                        | MEDIUM |
| validate_password.special_char_count            | 1      |
+-------------------------------------------------+--------+
8 rows in set (0.00 sec)

设置新的策略

set global validate_password.policy=LOW;
set global validate_password.length=4;
set global validate_password.mixed_case_count=0;
set global validate_password.number_count=0;
set global validate_password.special_char_count=0;

4、修改密码

alter user 'root'@'localhost' IDENTIFIED BY 'root123456';

5、刷新

flush privileges;

配置远程连接及管理员权限

1、创建任意主机连接的root账号

CREATE USER 'root'@'%' IDENTIFIED BY 'root123456';

2、授权

grant all privileges on *.* to 'root'@'%' with grant option;

3、刷新

flush privileges;

开放防火墙端口

1、查看防火墙状态

firewall-cmd --state
或者
systemctl status firewalld

2、查看开放端口列表

firewall-cmd --list-ports

3、开放3306端口

firewall-cmd --zone=public --add-port=3306/tcp --permanent

4、关闭防火墙(比较粗暴,除了没啥用的服务器不建议关闭)

systemctl stop firewalld
systemctl disable firewalld

5、重启防火墙

firewall-cmd --reload
MySQL
DB
  • 作者:一介闲人(联系作者)
  • 发表时间: 2024-04-15 18:01
  • 版权声明:原创-转载需保持署名
  • 公众号转载:请在文末添加本文链接
  • 评论