MySQL 初始化数据库主要指首次安装后完成基础配置、创建初始用户、设置密码及安全选项的过程。核心是运行
mysqld --initialize(或
mysqld --initialize-insecure)生成数据目录和临时密码,再通过
mysql_secure_installation加固系统。
初始化数据目录并生成临时密码
安装 MySQL 后,数据目录(如
/var/lib/mysql或自定义路径)为空。需手动初始化: 确保 MySQL 服务未运行(
systemctl stop mysqld或
brew services stop mysql) 执行初始化命令:
Linux/macOS(推荐带密码):
mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql
成功后终端会输出类似:
A temporary password is generated for root@localhost: aB3#xY9!qLm2若需跳过初始密码(仅测试环境):
mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql(root 密码为空)
启动 MySQL 服务并首次登录
初始化完成后启动服务,用临时密码登录:
启动服务:systemctl start mysqld(Linux)或
brew services start mysql(macOS) 登录:
mysql -u root -p,输入初始化时生成的临时密码 首次登录后必须修改密码(5.7.6+ 版本强制要求):
ALTER USER 'root'@'localhost' IDENTIFIED BY 'YourNewPass123!';
运行安全脚本加固配置
mysql_secure_installation是官方推荐的安全初始化工具,自动处理常见风险项: 执行命令:
mysql_secure_installation按提示操作:输入当前 root 密码 → 是否更改密码(建议选 Y)→ 删除匿名用户 → 禁用远程 root 登录 → 删除 test 数据库 → 重载权限表 该脚本会修改
mysql.user表、清理默认危险账户,并刷新权限,避免弱配置上线
验证与可选配置
完成上述步骤后建议快速验证并补充必要设置:
连接测试:mysql -u root -p -e "SELECT VERSION(), USER();"检查字符集(推荐统一为 utf8mb4):
在
/etc/my.cnf或
/usr/local/etc/my.cnf中添加:
[client]
default-character-set = utf8mb4
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci重启服务使配置生效:
systemctl restart mysqld
