mysql如何使用默认配置安装_mysql安装快速教程

来源:这里教程网 时间:2026-02-28 20:50:14 作者:

MySQL 默认配置安装在大多数 Linux 发行版中是开箱即用的,但“默认”不等于“零配置”——实际安装后常因

mysqld
未启动、
root
密码未设或 socket 路径不一致导致连接失败。

Ubuntu/Debian 上 apt 安装后为什么连不上 localhost?

Debian 系发行版(如 Ubuntu 22.04+)默认使用

auth_socket
插件认证
root
用户,不依赖密码,且
mysql
命令直连 Unix socket,而非 TCP 的 3306 端口。这会导致:

mysql -u root -p
报错
Access denied for user 'root'@'localhost'
mysql -u root
可登录,但仅限本地 socket 连接,
127.0.0.1
会走 TCP 并失败
systemctl status mysql
显示 active,但
netstat -lnp | grep :3306
没有监听(默认 bind-address = 127.0.0.1,且可能被注释)

解决方法:先用无密码方式登录,再切换认证方式

sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_secure_password';
FLUSH PRIVILEGES;

CentOS/RHEL 8+ 使用 dnf 安装 mysql-server 后找不到 mysqld?

Red Hat 系从 8 开始将 MySQL 替换为

mariadb
,官方仓库不再提供
mysql-server
。若坚持用 Oracle MySQL:

必须手动添加 MySQL 官方 YUM 源:
sudo rpm -Uvh https://dev.mysql.com/get/mysql80-community-release-el8-*.noarch.rpm
确认启用的是
mysql80-community
,禁用
mariadb
:运行
sudo dnf module reset mysql
+
sudo dnf module enable mysql:8.0
安装后首次启动会自动生成临时密码,查看日志:
sudo grep 'temporary password' /var/log/mysqld.log

注意:

mysqld
服务名在 RHEL/CentOS 是
mysqld
,不是
mysql
systemctl start mysqld
才生效。

Windows 上 MySQL Installer 默认配置的坑

MySQL Installer(Web/Full 版)勾选“Developer Default”看似省事,但会默认关闭 TCP/IP 连接、禁用远程访问、且 root 密码为空(仅允许 localhost socket),导致:

Navicat 或 Python
pymysql
连接时报
Can't connect to MySQL server on '127.0.0.1'
配置向导里没点开 “Advanced Options”,就无法设置
bind-address
或端口
安装路径含空格(如
C:\Program Files\MySQL\...
)时,某些脚本调用
mysqld
会失败

建议:安装时选 “Server Only”,勾选 “Include MySQL Server”,在配置页明确启用 TCP/IP、设好 root 密码、并把端口改为 3306(勿用 0);安装后检查

my.ini
中是否有
skip-networking
bind-address = 127.0.0.1
—— 后者允许本地 TCP,前者彻底关闭网络。

docker run mysql:8 默认配置下连不上?

Docker 官方镜像

mysql:8
不执行初始化 SQL,也不生成随机密码,除非显式传参:

没设
-e MYSQL_ROOT_PASSWORD=xxx
,容器会启动失败并报错
MYSQL_ROOT_PASSWORD not set
设了密码但没映射端口:
-p 3306:3306
缺失,宿主机无法访问
挂载了自定义
my.cnf
却没配
[mysqld]
段,MySQL 忽略该文件

最简可用命令:

docker run -d \
  --name mysql8 \
  -e MYSQL_ROOT_PASSWORD=root123 \
  -p 3306:3306 \
  -v $(pwd)/my.cnf:/etc/mysql/conf.d/my.cnf \
  -d mysql:8

其中

my.cnf
至少包含:

[mysqld]
default-authentication-plugin=mysql_native_password

否则客户端(如旧版 MySQL Workbench)会因插件不兼容拒绝连接。

真正麻烦的不是安装,而是默认配置背后隐含的认证逻辑、网络绑定策略和权限模型——这些不会报错,但会让“连得上”变成第一道坎。

相关推荐