答案是安装MySQL需选对方式并初始化。推荐用包管理器安装,如Ubuntu用apt、CentOS用dnf或yum;手动安装则需解压官方二进制包、创建用户和配置文件,指定datadir、basedir等。无论哪种方式,都必须用mysqld --initialize初始化数据目录,获取root临时密码并保存。随后启动服务,首次登录修改root密码,运行mysql_secure_installation加固安全,完成即可使用。

在 Linux 下安装 MySQL 并初始化数据库,核心是选对安装方式(包管理器 or 官方二进制)、正确配置服务、并用 mysqld --initialize 安全生成初始 root 密码。
用包管理器快速安装(推荐新手)
大多数发行版的仓库已提供 MySQL(或 MariaDB 兼容版)。确认你要装的是 Oracle 官方 MySQL:
- Ubuntu/Debian:
sudo apt update && sudo apt install mysql-server - CentOS/RHEL 8+:
sudo dnf install @mysql(启用 AppStream 仓库后) - CentOS/RHEL 7:
sudo yum install mysql-community-server(需先添加 MySQL 官方 YUM 源)
安装完成后服务自动注册,但尚未启动,也未初始化数据目录。
手动下载官方二进制包(适合定制需求)
去 MySQL 官网下载 Linux Generic 版本(.tar.xz),解压到 /usr/local/ 并创建软链接:
sudo tar -xf mysql-8.0.xx-linux-glibc2.17-x86_64.tar.xz -C /usr/local/ sudo ln -s /usr/local/mysql-8.0.xx-linux-glibc2.17-x86_64 /usr/local/mysql
接着创建 mysql 用户、配置 my.cnf(如 /etc/my.cnf),关键项包括:
-
[mysqld]下指定datadir=/var/lib/mysql(确保路径存在且属主为 mysql) basedir=/usr/local/mysqlsocket=/var/run/mysqld/mysqld.sock
初始化数据目录并获取临时密码
无论哪种安装方式,首次运行前都必须初始化数据目录。以 mysql 用户身份执行:
SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板
sudo mkdir -p /var/lib/mysql sudo chown mysql:mysql /var/lib/mysql sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/var/lib/mysql
注意:命令成功后终端会输出类似下面的一行 —— 这是 root@localhost 的一次性临时密码,务必复制保存:
A temporary password is generated for root@localhost: tR!9gYsLk2#p如果跳过这步直接启动服务,MySQL 会报错“Can’t start server: Bind on unix socket…” 或无法认证登录。
启动服务并完成安全初始化
- 启动服务:
sudo systemctl start mysqld(systemd 系统)或sudo /usr/local/mysql/support-files/mysql.server start(源码包) - 设为开机自启:
sudo systemctl enable mysqld - 首次登录:
mysql -u root -p,粘贴上面的临时密码 - 登录后立即执行:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourStrongPass123!'; - 再运行
sudo mysql_secure_installation,按提示禁用匿名用户、禁止远程 root 登录、删除 test 库等
完成后,MySQL 就可正常使用了。验证:执行 SHOW DATABASES; 应能看到 mysql、information_schema 等系统库。
基本上就这些。关键是别跳过初始化步骤,也别忽略临时密码——它只在日志里出现一次,丢了就得删 data 目录重来。









