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

相关推荐
GitLqr14 小时前
深入理解 Flutter 架构:从 Widget 到 GPU 像素的全链路解析
flutter·面试·dart
众人皆醒我独醉16 小时前
TGI:HuggingFace 的官方推理服务——不止 PagedAttention,更懂模型生态
面试·llm·ai编程
众人皆醒我独醉16 小时前
vLLM:PagedAttention 如何让 LLM 推理吞吐提升 24 倍
面试·llm·ai编程
神奇小汤圆17 小时前
面试官突然问:“数仓哪一层最适合做RAG?”他一下被问住了…
面试
一只旭宝17 小时前
C++手写shared_ptr共享智能指针|原子引用计数、强弱引用控制块、赋值重载底层深度剖析
开发语言·c++·面试
神奇小汤圆18 小时前
工业级 RAG 为什么需要 Elasticsearch?一篇讲清索引、度量、过滤与 Milvus 选型
面试
swipe1 天前
14|(前端转全栈)商品详情高频访问怎么扛?Redis Cache Aside 实战
前端·后端·面试
swipe1 天前
15|(前端转全栈)从一个副标题字段看懂后端完整交付链路
前端·后端·面试
胡萝卜术1 天前
「最大子数组和」的 Kadane 算法中回过神来,我们正式踏入一个全新的领域——二叉树
前端·javascript·面试
KaifuZeng1 天前
电源面试问题汇总二
单片机·嵌入式硬件·面试