一、数据库基础认知

Linux 是服务器端最主流的操作系统,绝大多数企业的数据库服务都部署在 Linux 上。相比 Windows,Linux 下安装 MySQL 更简洁(通过包管理器),且运行更稳定、资源占用更低。

新手仍首选MySQL(开源免费、生态完善),以下以最常用的 CentOS 7/8Ubuntu 20.04/22.04

二、MySQL 安装步骤

2.1 环境准

  1. 登录 Linux 服务器(建议用 root 用户,或普通用户加sudo),先更新系统包:

    • CentOS/RHEL

      bash

      运行

      yum update -y
      
    • Ubuntu/Debian:

      bash

      运行

      apt update && apt upgrade -y
      
  2. 关闭防火墙 / SELinux

    bash

    运行

    # CentOS 7 关闭防火墙
    systemctl stop firewalld
    systemctl disable firewalld
    # 关闭SELinux
    setenforce 0
    sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
    

2.2 CentOS 7/8 安装 MySQL

bash

运行

# CentOS 7
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
rpm -ivh mysql80-community-release-el7-3.noarch.rpm

# CentOS 8(需先禁用默认MySQL模块)
dnf module disable mysql -y
wget https://dev.mysql.com/get/mysql80-community-release-el8-3.noarch.rpm
rpm -ivh mysql80-community-release-el8-3.noarch.rpm
安装 MySQL 服务

bash

运行

# CentOS 7
yum install -y mysql-community-server

# CentOS 8
dnf install -y mysql-community-server
启动并设置开机自启

bash

运行

# 启动服务
systemctl start mysqld
# 设置开机自启
systemctl enable mysqld
# 查看服务状态(确认running)
systemctl status mysqld
获取临时密码并修改
  1. MySQL 安装后会自动生成临时密码,存放在日志文件中:

    bash

    运行

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

    输出示例:A temporary password is generated for root@localhost: abc123*XYZ(复制这个密码)。

  2. 登录 MySQL 并修改密码:

    bash

    运行

    # 登录(输入上述临时密码)
    mysql -u root -p
    

    登录后执行密码修改语句

    sql

    ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPasswd@123';
    # 刷新权限
    FLUSH PRIVILEGES;
    # 退出
    exit;
    

2.3 Ubuntu 20.04/22.04 安装 MySQL

安装 MySQL 服务

bash

运行

# 直接安装
apt install -y mysql-server
初始化配置(设置密码)

bash

运行

mysql_secure_installation

bash

运行

mysql -u root -p

输入设置的密码,进入mysql>命令行即安装成功。

2.4 允许远程访问

默认 MySQL 只允许本地(localhost)访问,如需远程连接(如用 Navicat),需修改配置:

  1. 登录 MySQL,执行授权语句

    sql

    -- MySQL8.0 授权语法
    CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    exit;
    
  2. 修改 MySQL 配置文件,注释绑定 IP 的行:

    bash

    运行

    # 编辑配置文件
    vi /etc/my.cnf  # CentOS
    # 或 vi /etc/mysql/mysql.conf.d/mysqld.cnf  # Ubuntu
    

    找到bind-address = 127.0.0.1,改为bind-address = 0.0.0.0(或注释掉这行),保存退出。

  3. 重启 MySQL 服务:

    bash

    运行

    # CentOS
    systemctl restart mysqld
    # Ubuntu
    systemctl restart mysql
    

三、Linux 下 MySQL 基础操作

3.1 核心系统命令

bash

运行

# 启动/停止/重启服务
systemctl start mysqld   # CentOS
systemctl start mysql    # Ubuntu

systemctl stop mysqld
systemctl restart mysqld

# 查看服务状态
systemctl status mysqld

# 查看MySQL版本
mysql -V

# 查看监听端口(确认3306端口开启)
netstat -tnlp | grep 3306

3.2 核心 SQL 命令(与 Windows 一致)

sql

-- 查看所有数据库
SHOW DATABASES;

-- 创建数据库
CREATE DATABASE test_db;

-- 使用数据库
USE test_db;

-- 创建表
CREATE TABLE user (
    id INT PRIMARY KEY AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    age INT
);

-- 插入数据
INSERT INTO user (name, age) VALUES ('李四', 25);

-- 查询数据
SELECT * FROM user;

四、常见问题解决

  1. 安装提示依赖错误:CentOS 执行yum install -y libaio-devel,Ubuntu 执行apt install -y libaio1
  2. 3306 端口无法访问:检查防火墙是否放行 3306 端口(生产环境建议配置:firewall-cmd --add-port=3306/tcp --permanent && firewall-cmd --reload)。
  3. 远程连接失败:确认bind-address已改为 0.0.0.0、授权语句正确、服务器安全组放行 3306 端口。
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐