如何在Linux环境下安装MySQL

本文将详细介绍如何在不同的Linux发行版(如Ubuntu/Debian和CentOS/Fedora)上安装和配置MySQL数据库。无论你是初学者还是有经验的用户,本教程都将帮助你顺利完成安装过程。

目录

  1. 前提条件
  2. 在Debian/Ubuntu上安装MySQL
    • 更新系统包
    • 安装MySQL服务器
    • 启动和检查MySQL服务
    • 运行安全安装脚本
    • 测试MySQL安装
  3. 在CentOS/Fedora上安装MySQL
    • 添加MySQL Yum仓库
    • 安装MySQL服务器
    • 启动和检查MySQL服务
    • 运行安全安装脚本
    • 测试MySQL安装
  4. 常见问题及解决方法
  5. 结论

1. 前提条件

在开始之前,请确保你具备以下条件:

  • 一台运行Linux的服务器或虚拟机(本文以Ubuntu 20.04和CentOS 8为例)
  • 具有sudo权限的用户
  • 程序包管理器(如apt、yum或dnf)正常工作

2. 在Debian/Ubuntu上安装MySQL

2.1 更新系统包

首先,确保你的系统包列表是最新的。打开终端并运行以下命令:

sudo apt update
sudo apt upgrade -y

2.2 安装MySQL服务器

使用apt包管理器安装MySQL服务器:

sudo apt install mysql-server -y

这将安装最新版本的MySQL服务器及其依赖项。

2.3 启动和检查MySQL服务

安装完成后,启动MySQL服务并确保它在系统启动时自动启动:

sudo systemctl start mysql
sudo systemctl enable mysql

检查MySQL服务的状态:

sudo systemctl status mysql

你应看到类似如下的输出,表明MySQL正在运行:

● mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset:>
     Active: active (running) since Sun 2023-04-27 10:55:06 UTC; 1min ago

2.4 运行安全安装脚本

MySQL自带了一个安全安装脚本,可以帮助你进行一些基本的安全配置,如设置root密码、删除匿名用户等。

运行以下命令:

sudo mysql_secure_installation

按照提示进行操作:

  1. 验证当前root密码:如果是第一次安装,通常root账户没有密码,直接按Enter键继续。
  2. 设置root账户密码:根据提示设置一个强密码。
  3. 移除匿名用户:建议选择“Y”以删除匿名用户。
  4. 禁止root远程登录:根据需求选择“Y”或“N”。
  5. 删除测试数据库:选择“Y”以删除测试数据库。
  6. 重新加载权限表:选择“Y”以使更改立即生效。

2.5 测试MySQL安装

使用新的root密码登录MySQL,确保安装成功:

mysql -u root -p

输入密码后,你将进入MySQL命令行界面:

Welcome to the MySQL monitor.  Commands end with ; or \g.
...
mysql>

退出MySQL:

exit

3. 在CentOS/Fedora上安装MySQL

3.1 添加MySQL Yum仓库

CentOS 8及之后版本默认不包括MySQL官方仓库,需要手动添加。首先,下载MySQL Yum仓库包:

wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

然后,安装该仓库包:

sudo rpm -Uvh mysql80-community-release-el8-1.noarch.rpm

你可以通过以下命令确认仓库是否已启用:

sudo yum repolist enabled | grep mysql

3.2 安装MySQL服务器

使用dnf(或yum)安装MySQL服务器:

sudo dnf install mysql-server -y

3.3 启动和检查MySQL服务

安装完成后,启动MySQL服务并设置开机自启:

sudo systemctl start mysqld
sudo systemctl enable mysqld

检查服务状态:

sudo systemctl status mysqld

正常情况下,你应该会看到MySQL服务处于“active (running)”状态。

3.4 查找临时root密码

MySQL在安装过程中会为root用户生成一个临时密码。你可以通过查看MySQL日志来找到它:

sudo grep 'temporary password' /var/log/mysqld.log

输出示例:

2023-04-27T10:55:06.123456Z 1 [Note] A temporary password is generated for root@localhost: xP@ssw0rd123

记下这个临时密码,以便后续使用。

3.5 运行安全安装脚本

使用临时密码登录MySQL,然后运行安全安装脚本:

mysql_secure_installation

按照提示进行操作:

  1. 输入临时密码
  2. 设置新的root密码
  3. 移除匿名用户
  4. 禁止root远程登录
  5. 删除测试数据库
  6. 重新加载权限表

3.6 测试MySQL安装

使用新设置的密码登录MySQL:

mysql -u root -p

输入密码后,你应能进入MySQL命令行界面:

Welcome to the MySQL monitor.  Commands end with ; or \g.
...
mysql>

退出MySQL:

exit

4. 常见问题及解决方法

4.1 无法启动MySQL服务

如果MySQL服务无法启动,可以通过查看系统日志来了解原因:

sudo journalctl -u mysql  # Debian/Ubuntu
sudo journalctl -u mysqld  # CentOS/Fedora

常见问题包括端口被占用、配置文件错误等。根据日志提示逐一排查。

4.2 忘记root密码

如果忘记了MySQL root密码,可以按照以下步骤重置:

  1. 停止MySQL服务

    sudo systemctl stop mysql  # Debian/Ubuntu
    sudo systemctl stop mysqld  # CentOS/Fedora
    
  2. 使用跳过权限表的方式启动MySQL

    sudo mysqld_safe --skip-grant-tables &
    
  3. 登录MySQL

    mysql -u root
    
  4. 刷新权限并更改密码

    FLUSH PRIVILEGES;
    ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
    
  5. 退出MySQL并重启服务

    exit
    
    sudo systemctl stop mysqld  # CentOS/Fedora
    sudo systemctl start mysql  # Debian/Ubuntu
    

4.3 防火墙配置

如果需要远程访问MySQL,需要开放MySQL默认端口3306。

Debian/Ubuntu使用UFW

sudo ufw allow 3306/tcp

CentOS/Fedora使用firewalld

sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

注意:开放端口存在安全风险,建议通过VPN、SSH隧道等方式进行远程访问,或仅允许特定IP连接。

4.4 绑定地址配置

默认情况下,MySQL绑定到本地回环地址(127.0.0.1),无法远程访问。若需更改,可编辑MySQL配置文件。

编辑配置文件

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf  # Debian/Ubuntu
sudo nano /etc/my.cnf.d/mysql-server.cnf    # CentOS/Fedora

找到bind-address行,将其改为0.0.0.0以允许所有IP访问,或指定特定IP:

bind-address = 0.0.0.0

保存文件并重启MySQL服务:

sudo systemctl restart mysql  # Debian/Ubuntu
sudo systemctl restart mysqld  # CentOS/Fedora

按以上的步骤,你应该已经成功在Linux系统上安装并配置了MySQL数据库。


希望这篇教程对你有所帮助!如果有任何问题或需要进一步的帮助,请随时在评论区留言。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值