程序员的知识教程库

网站首页 > 教程分享 正文

centos7.9离线安装mysql5.7

henian88 2025-03-12 15:06:53 教程分享 67 ℃ 0 评论

操作系统:centos 7.9(anolis7.9)

mysql版本:5.7.44

  1. 准备mysql安装包


wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar
  1. 解压下载的文件
mkdir mysql-5.7-rpm-packages
tar -xvf mysql-5.7.44-1.el7.x86_64.rpm-bundle.tar -C mysql-5.7-rpm-packages
  1. 卸载系统自带的 MariaDB

CentOS 7 默认安装了 MariaDB,可能会与 MySQL 冲突。卸载 MariaDB

sudo yum remove mariadb mariadb-libs
  1. 安装 MySQL 5.7 RPM 包

进入解压后的 RPM 包目录:

cd mysql-5.7-rpm-packages
  1. 使用 yum localinstall 安装 MySQL 5.7 的 RPM 包

安装 MySQL公共库、依赖项、客户端、服务器。注意顺序不能搞乱,有依赖关系。


sudo yum localinstall mysql-community-common-* --exclude='*minimal*'
sudo yum localinstall mysql-community-libs-* --exclude='*minimal*'
sudo yum localinstall mysql-community-client-* --exclude='*minimal*'
sudo yum localinstall mysql-community-server-* --exclude='*minimal*'
  1. 启动 MySQL 服务
sudo systemctl start mysqld
设置 MySQL 开机自启:
sudo systemctl enable mysqld
  1. 获取临时密码并设置 root 密码

MySQL 首次启动后会生成一个临时密码,查看临时密码:

sudo grep 'A temporary password' /var/log/mysqld.log | tail -1

示例输出:

2024-10-12T12:00:00.000000Z 1 [Note] A temporary password is generated for root@localhost: Nm(!pKkkjo68e

  1. 使用临时密码登录 MySQL
mysql -u root -p
  1. 设置新密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewStrongPassword!';
  1. 退出 MySQL
exit;
  1. 验证安装
确认 MySQL 服务运行状态:
systemctl status mysqld
登录 MySQL:
mysql -u root -p





  1. 设置可以远程访问mysql

在 MySQL 中,通过 GRANT 语句可以设置允许远程访问权限。以下是一个允许用户 myuser 从任意主机访问数据库的示例:

以下所有操作,首先,需要登录进mysql。

1. 允许用户从任意主机访问

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'MyStrongPassword';
FLUSH PRIVILEGES;
  • GRANT ALL PRIVILEGES:授予所有权限。
  • ON *.*:对所有数据库和表授予权限。
  • 'myuser'@'%':允许用户 myuser 从任意主机 (%) 访问。
  • FLUSH PRIVILEGES:刷新权限,使更改立即生效。

2. 指定允许访问的主机

如果你想限制用户只能从特定 IP 地址(例如 192.168.1.100)访问,可以将 % 替换为该 IP:

GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.100' IDENTIFIED BY 'MyStrongPassword';
FLUSH PRIVILEGES;

3. 允许访问特定数据库

如果你只想让用户访问特定数据库(例如 mydatabase),可以修改 ON 子句:

GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%' IDENTIFIED BY 'MyStrongPassword';
FLUSH PRIVILEGES;

注意事项

  1. 安全性
  2. 使用强密码(如示例中的 MyStrongPassword)。
  3. 避免将 GRANT ALL 权限授予不受信任的用户。
  4. 考虑只授予用户所需的具体权限(如 SELECT、INSERT 等)。
  5. 配置防火墙: 确保服务器防火墙允许 MySQL 端口(默认是 3306)的流量。例如,使用以下命令允许访问:
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent 
sudo firewall-cmd --reload

到这里通常应该可以从其他电脑访问mysql了。如果还不行,则尝试以下内:

  1. MySQL 配置文件: 确保 MySQL 配置文件(通常是 /etc/my.cnf 或 /etc/mysql/my.cnf)中没有限制绑定地址。如果配置文件中有:
bind-address = 127.0.0.1
  1. 请将其注释掉或改为:
bind-address = 0.0.0.0
  1. 然后重启 MySQL 服务:
sudo systemctl restart mysqld

通过以上步骤,你就可以配置 MySQL 用户从远程访问数据库了。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表