MySQL5.7 安装

227 阅读3分钟

下载 mysql 5.7.42

开始安装

检测系统是否自带 mysql,如果自带的话先卸载

# 查看是否存在 mariadb
rpm -qa | grep mariadb
# 如果存在,则会打印 mariadb 的名称,使用下面的命令删除
rpm -e --nodeps mariadb名称


# 查看是否存在 mysql
rpm -qa | grep mysql
# 如果存在,则会打印 mysql 的名称,使用下面的命令删除
rpm -e --nodeps mysql名称

# 删除配置文件
rm /etc/my.cnf

将下载的安装包上传到服务器根目录

ls /
# mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz bin  boot  dev  etc  home  lib  lib64  media  mnt ...

将安装包移动到 /usr/local 目录下

mv /mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz /usr/local

将软件包解压

# 进入 /usr/local
cd /usr/local

# 开始解压
tar -zxvf mysql-5.7.42-linux-glibc2.12-x86_64.tar.gz

# 将解压出来的文件重名为 mysql
mv mysql-5.7.42-linux-glibc2.12-x86_64 mysql

创建数据存储文件

mkdir /usr/local/mysql/data

创建 mysql 用户和用户组(初始化数据库时用)

groupadd mysql
useradd -g mysql mysql

将存储文件(/usr/local/mysql/data)的用户和用户组设置为新建的 mysql

chown -R mysql:mysql /usr/local/mysql

创建配置文件 /etc/my.cnf

vim /etc/my.cnf

然后将如下内容复制到配置文件 /etc/my.cnf 进行保存

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/usr/local/mysql/data/mysql.err
pid-file=/usr/local/mysql/data/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

初始化 mysql

# 进入 mysql 的二进制文件目录
cd /usr/local/mysql/bin/

# 使用 mysqld 初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql --initialize

将 mysql 添加为系统服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cp /usr/local/mysql/bin/mysql /bin/mysql

启动 mysql 服务

service mysql start

查看服务状态

service mysql status

# mysql.service - LSB: start and stop MySQL
#   Loaded: loaded (/etc/rc.d/init.d/mysql; bad; vendor preset: disabled)
#   Active: active (running) since 六 2024-09-28 17:17:36 CST; 4min 32s ago
#     Docs: man:systemd-sysv-generator(8)
#  Process: 4796 ExecStart=/etc/rc.d/init.d/mysql start (code=exited, status=0/SUCCESS)

设置密码

启动 mysql 服务之后,少不了需要登录或远程连接据库,这都是需要登录密码的,所以我们弄到这个密码。首先 mysql 在 /usr/local/mysql/data/mysql.err 文件中提供了 root 用户的初始密码,我们可以先通过这个初始密码登录数据库,然后将通过 sql 将密码修改为自己需要的,这样就搞定了

首先查看 mysql 初始密码

# 使用 cat 命令查看
cat /usr/local/mysql/data/mysql.err

image.png

通过初始密码进行登录,登录之后修改密码为 root

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
FLUSH PRIVILEGES;

设置完成后通过新设置的密码进行登录

问题汇总

无法远程登录

如果使用 Navicat、SQLyog 无法连接数据库,可尝试以下方式解决:

  1. 开放防火墙3306端口
# 开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重启防火墙
firewall-cmd --reload
  1. 修改 root 用户的 host 属性
USE mysql;
UPDATE user set host = '%' where user = 'root';
FLUSH PRIVILEGES;

设置完成后重新连接