linux安装mysql,超级详细,不踩坑

1. apt install mysql-server

安装过程中会自动:

  • 安装 MySQL 服务
  • 创建 systemd 服务
  • 默认初始化数据目录

但是此时,mysql没有配置密码,可以直接使用

mysql -uroot

登录

2. 运行安全配置脚本:mysql_secure_installation

跟着提示一步一步走,基本都是先选yes就行

3. 开始设置用户密码

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';

FLUSH PRIVILEGES;

FLUSH PRIVILEGES作用是:

强制 MySQL 重新加载权限表到内存

等价于:

复制代码
重新读取 mysql.user 等系统表 → 更新权限缓存

之后你就可以:

css 复制代码
mysql -u root -p

但是由于安全配置中,只能本地登录选择了yes,所以现在只有一个root用户,并且只能本地登录

4. 怎么查看当前mysql的所有用户

SELECT user, host, plugin FROM mysql.user;

  • user:用户名

  • host:允许从哪里登录(localhost 只本地,% 任意地址)

  • plugin:认证方式(mysql_native_password /caching_sha2_password)

创建一个dev用户,这个用户有创建库表,也有对表新增和修改数据的权限,但是没有删除库表的权限,并且开放任意ip

sql 复制代码
CREATE USER 'dev'@'%' IDENTIFIED WITH mysql_native_password BY '你的强密码';


GRANT CREATE, ALTER, INDEX, INSERT, UPDATE, DELETE, SELECT, CREATE TEMPORARY TABLES ON *.* TO 'dev'@'%';

权限说明:

  • CREATE:可以创建数据库、创建表

  • ALTER:可以修改表结构

  • SELECT / INSERT / UPDATE / DELETE:可以增删改查数据

  • 没有给的权限

    • DROP:不能删库、不能删表
    • DROP USER:不能删用户
    • GRANT OPTION:不能授权别人

FLUSH PRIVILEGES; 刷新mysql权限

5. 怎么修改mysql的端口

编辑配置文件

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

找到 port 配置

如果没有就自己加,在 [mysqld] 下:

ini 复制代码
[mysqld]
port = 3307

6. 让mysql服务可以被远程访问

也是在上面的配置文件下

确认监听地址

如果你要远程访问:

ini 复制代码
bind-address = 0.0.0.0

否则只本机访问:

ini 复制代码
bind-address = 127.0.0.1

7.重启mysql,并查看服务进行确认

systemctl restart mysql

查看端口监听

ss -tlnp | grep 3307

8. 到这里mysql本身的配置已经全部完成,但是还是要注意以下的坑

查看防火墙目前开放的端口,并确认有没有3307

ufw status

如果没有,就加上

sudo ufw allow 3307

如果是云服务厂商的服务器,最好检查下对应厂商的防火墙控制台,同时配置以下端口放行

将mysql注册成开机自启动的服务,并验证

sudo systemctl enable mysql sudo systemctl is-enabled mysql

最后找另一台机器,自测一下dev用户连接,就大功告成了

相关推荐
奔跑的蜗牛ing11 小时前
CentOS Nginx 安装与静态文件服务器配置指南
前端·面试·架构
KaifuZeng14 小时前
通信与接口协议面试五、RS422
嵌入式硬件·面试·通信与接口
SamDeepThinking16 小时前
组合还是继承?我在项目里主要看这两个判断
java·后端·面试
wear工程师16 小时前
setState 到底是不是异步的?这题从 React 16 问到 18,标准答案早就变了
react.js·面试
SamDeepThinking19 小时前
为什么很多人学了Java,还是没真正理解类和对象?
java·后端·面试
阿新聊ai19 小时前
Claude Code 为什么总不懂你的项目?缺一张「项目地图」
前端·后端·面试
用户8524950718420 小时前
Promise 全解析:从三状态到 Promise.all
面试
嘟嘟071720 小时前
Node.js spawn 实现迷你 Cursor 自动化终端|子进程完整解析
前端·后端·面试
weedsfly20 小时前
纯函数与副作用——前端开发中最容易被忽视的质量保证
前端·javascript·面试
whaledown21 小时前
互联网大厂Java求职面试三轮提问详解(涵盖Spring Boot、微服务、Kafka等核心技术)
java·jvm·数据库·spring boot·微服务·面试·kafka