目 录CONTENT

文章目录

03-Linux安装MySQL

~梓
2026-04-28 / 0 评论 / 0 点赞 / 0 阅读 / 0 字
温馨提示:
部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

Linux 安装 MySQL

Ubuntu/Debian 系统安装

更新软件包索引

sudo apt update

安装 MySQL Server

sudo apt install mysql-server

启动 MySQL 服务

sudo systemctl start mysql
sudo systemctl enable mysql

检查服务状态

sudo systemctl status mysql

CentOS/RHEL 系统安装

添加 MySQL 仓库

# 下载仓库配置文件
sudo wget https://dev.mysql.com/get/mysql80-community-release-el8-1.noarch.rpm

# 安装仓库
sudo rpm -ivh mysql80-community-release-el8-1.noarch.rpm

安装 MySQL Server

sudo yum install mysql-server

启动 MySQL 服务

sudo systemctl start mysqld
sudo systemctl enable mysqld

获取临时密码

CentOS/RHEL 安装后会生成临时 root 密码:

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

安全配置

运行安全脚本

sudo mysql_secure_installation

脚本会依次询问:

  1. 是否启用密码验证插件:根据需求选择,建议选择 y
  2. 设置 root 密码强度等级:0=LOW, 1=MEDIUM, 2=STRONG
  3. 设置 root 密码:输入新密码
  4. 删除匿名用户:建议选择 y
  5. 禁止 root 远程登录:建议选择 y(本地开发可选 n
  6. 删除测试数据库:建议选择 y
  7. 重新加载权限表:选择 y

设置 root 密码

Ubuntu/Debian 系统

默认使用 auth_socket 插件,需要修改认证方式。

登录 MySQL:

sudo mysql

修改 root 用户认证方式并设置密码:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
EXIT;

CentOS/RHEL 系统

使用临时密码登录:

mysql -u root -p

修改密码:

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
EXIT;

创建新用户

登录 MySQL:

mysql -u root -p

创建用户并授权:

-- 创建用户
CREATE USER 'username'@'localhost' IDENTIFIED BY '密码';

-- 授予所有权限
GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

-- 授予特定数据库权限
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;

允许远程连接

修改绑定地址

编辑配置文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

找到 bind-address 行,修改为:

bind-address = 0.0.0.0

创建远程用户

CREATE USER 'username'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;

% 表示允许任何 IP 连接,也可以指定具体 IP。

重启服务

sudo systemctl restart mysql

配置防火墙

# Ubuntu/Debian
sudo ufw allow 3306/tcp

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

基本操作

登录 MySQL

mysql -u root -p

查看数据库

SHOW DATABASES;

创建数据库

CREATE DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

使用数据库

USE database_name;

查看表

SHOW TABLES;

常见问题

忘记 root 密码

停止 MySQL 服务:

sudo systemctl stop mysql

跳过权限验证启动:

sudo mysqld_safe --skip-grant-tables &

登录并修改密码:

mysql -u root

# MySQL 5.7
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root';

# MySQL 8.0
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';

FLUSH PRIVILEGES;
EXIT;

重启服务:

sudo systemctl restart mysql

连接被拒绝

检查服务是否运行:

sudo systemctl status mysql

检查端口是否监听:

sudo netstat -tlnp | grep 3306

检查防火墙规则是否允许 3306 端口。

密码强度不符合要求

查看密码策略:

SHOW VARIABLES LIKE 'validate_password%';

临时降低密码强度要求:

SET GLOBAL validate_password.policy=LOW;
SET GLOBAL validate_password.length=6;
0

评论区