资源下载

阿里云镜像地址:https://mirrors.aliyun.com/mysql/MySQL-5.7/

我这里使用的是 mysql-5.7.36-el7-x86_64.tar.gz

## 安装

提示:我这里是按照我的环境路径进行的配置,可以直接按照我的路径进行操作,也可根据自身情况修改

将下载的【mysql-5.7.36-el7-x86_64.tar.gz】文件上传到 /usr/local 目录下

MySQL 运行依赖一些基础系统库,使用以下命令安装必要的依赖包

sudo yum install -y libaio numactl

为 MySQL 服务创建专用的用户和组

sudo groupadd mysql

sudo useradd -r -g mysql -s /bin/false mysql

解压安装包

--strip-components=1 用于去掉解压后的顶级目录,直接把文件解压到 /usr/local/mysql 目录

sudo mkdir -p /usr/local/mysql

sudo tar -zxvf /usr/local/mysql-5.7.36-el7-x86_64.tar.gz -C /usr/local/mysql --strip-components=1

创建数据存储目录

sudo mkdir -p /usr/local/mysql/data

创建日志存储目录

sudo mkdir -p /usr/local/mysql/log

将mysql目录赋权给刚刚创建的mysql用户

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

初始化 MySQL,使用以下命令初始化 MySQL 数据目录,生成初始系统表和临时密码

sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,终端会输出一个临时密码,格式类似:

!!!务必记住这个临时密码,后续登录 MySQL 会用到

2025-03-01T12:34:56.789012Z 1 [Note] A temporary password is generated for root@localhost: .v9EsVMdN&as

把 MySQL 的服务脚本复制到系统服务目录

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

(可选)使用以下命令将 MySQL 服务设置为开机自动启动

sudo chkconfig --add mysql

sudo chkconfig mysql on

启停 MySQL 服务

// 启动
sudo service mysql start

// 停止
sudo service mysql stop

// 重启
sudo service mysql restart

// 查询状态
sudo service mysql status

使用临时密码登录,并修改密码

输入之前存储的临时密码,即可登录成功

/usr/local/mysql/bin/mysql -u root -p

使用以下命令进行修改密码,我这里为了方便,设置密码为:123456

ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

配置环境变量

sudo vi /etc/profile

在文件末尾添加以下内容:

export PATH=$PATH:/usr/local/mysql/bin

保存并退出文件,执行以下命令 使配置生效

source /etc/profile

修改mysql配置文件,默认会生成/etc/my.cn 没有也没关系 可以通过以下命令编辑创建

sudo vi /etc/my.cnf

我的配置如下,可以参考直接拷贝进去,也可以根据自身情况修改

[mysqld]

# 设置3306端口

port=3306

# # 设置mysql的安装目录

basedir=/usr/local/mysql

# # 设置mysql数据库的数据的存放目录

datadir=/usr/local/mysql/data

sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"

# # 允许最大连接数

max_connections=10000

# # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统

max_connect_errors=10

# # 服务端使用的字符集默认为UTF8

character-set-server=utf8mb4

# # 创建新表时将使用的默认存储引擎

default-storage-engine=INNODB

# # 默认使用“mysql_native_password”插件认证

default_authentication_plugin=mysql_native_password

socket=/usr/local/mysql/mysql.sock

[mysql]

# # 设置mysql客户端默认字符集

default-character-set=utf8

# # 配置 0.0.0.0支持远程连接

bind-address=0.0.0.0

[client]

# # 设置mysql客户端连接服务端时默认使用的端口

port=3306

socket=/usr/local/mysql/mysql.sock

[mysqld_safe]

log_error=/usr/local/mysql/log/error.log

pid_file=/usr/local/mysql/mysql.pid

重启MySQL 服务即可生效

开通 MySQL 远程连接

登录mysql

mysql -u root -p

创建允许远程连接的用户,例如root用户

GRANT ALL PRIVILEGES ON . TO root@"%" IDENTIFIED BY "123456";

退出mysql,检查/etc.my.cnf 配置

在 [mysqld] 部分找到 bind-address 参数,将其修改为 0.0.0.0,表示允许任何 IP 地址连接

重启 MySQL 服务生效

如遇到远程连接都配置无误,还是无法访问,检查服务器防火墙,云服务器检查安全组策略