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用户连接,就大功告成了

相关推荐
Darling噜啦啦10 小时前
列表转树算法深度解析:从 Map 到 Reduce 的两种实现,面试高频考点
数据结构·算法·面试
swipe11 小时前
正则表达式入门到进阶:从表单校验到手写模板引擎
前端·javascript·面试
神奇小汤圆12 小时前
RAG大厂面试题汇总:向量检索、混合检索、Rerank、幻觉处理高频问题
面试
假如让我当三天老蒯13 小时前
回归基本功:Map/Set 与 WeakMap/WeakSet 的区别
前端·面试
假如让我当三天老蒯17 小时前
回归基本功!前端的解构赋值、扩展运算符、剩余参数
前端·面试
Lee川17 小时前
Memory 模块深度解析(面试向)
人工智能·面试
JAVA9651 天前
JAVA面试-JVM篇 03-JVM运行时数据区哪些是线程私有的哪些是共享的
java·jvm·面试
枫子有风2 天前
LLM-Agent智能体(大厂面试常问)
面试·职场和发展·llm·agent
Oo_行者_oO2 天前
删库先别跑路,万一修复呢?MySQL 误删数据恢复可落地运维文档
数据库·面试
Moment2 天前
从多人编辑到 Agent 写文档,Hocuspocus v4 正在改写协同系统 😍😍😍
前端·后端·面试