找回密码
立即注册
搜索
发新帖

910

积分

0

好友

119

主题
发表于 前天 22:51 | 查看: 21| 回复: 0
1、数据库的准备:MySQL 官网下载Windows (x86, 64-bit), ZIP Archive版本,下载需要的对应版本;解压到MyRepack文件夹下面;
     下载地址:MySQL Community Edition
chrome_IUkwozPyNq.png
2、进入..\mysql\bin\文件夹,建立 my.ini文件,内容如下:
  1. [mysqld]
  2. port=3306
  3. socket=mysql.sock

  4. basedir=./
  5. datadir=./data

  6. skip-external-locking
  7. skip-name-resolve
复制代码
以管理员身份运行 CMD,进入..\mysql\bin\文件夹,运行命令:
  1. mysqld --initialize-insecure
复制代码
这里要等待一会,等命令行再次显示,命令执行完毕,在bin文件夹新建一个data文件夹,数据库存放位置;
mysqld --initialize-insecure 这个命令。
这是 MySQL 服务器 (mysqld) 在 首次安装 或 数据目录为空 时执行的一个关键操作,用于初始化数据库系统。
🔑 mysqld --initialize-insecure 命令分析
1. 核心功能:数据目录初始化mysqld: 这是 MySQL 服务器的主程序。
--initialize: 这是一个必需的选项,指示 mysqld 执行 数据目录初始化。作用: 它会在配置的或默认的数据目录(datadir)中创建必要的系统数据库和文件,包括 mysql 数据库(存储用户权限、系统配置等)。这是 MySQL 服务器能够启动和运行的基础。
--insecure: 这是对初始化过程的一个修饰符,也是这个命令的关键所在。
2. --insecure 选项的含义和影响在初始化过程中,MySQL 默认会创建一个拥有所有权限的 root 用户账户,它通常是:'root'@'localhost'。
选项root 账户密码设置安全性登录方式--initialize (安全模式)生成一个随机的临时密码,并将其写入错误日志文件。该密码会被标记为已过期。安全必须使用日志中的临时密码登录,然后立即修改密码。
--initialize-insecure不生成任何密码,即 root 账户的密码为空。不安全可以使用空密码直接登录(mysql -u root)。
首次连接: 在服务器启动后,您可以使用空密码直接以 root 身份连接:mysql -u root

✅ 实现“root 密码为 acore”的正确步骤
步骤 1:初始化数据目录(使用不安全模式)使用 --initialize-insecure 选项,这样 root 账户将以空密码创建,便于您下一步连接。
步骤 2:启动服务器并立即设置密码;初始化成功后,启动 MySQL 服务器,并以空密码连接,然后立即修改密码。
A. 启动服务器(如果您使用前一个命令:mysqld --console --standalone):bin\mysqld --console --standalone
B. 连接并修改密码在另一个命令行窗口中执行以下操作:
1、以 root 身份连接(无需密码,因为初始化是不安全的):mysql -u root
2、修改 root 用户的密码:连接成功后,在 mysql> 提示符下执行 SQL 语句:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'acore';
# 或者使用更现代的语法,同时确保密码认证插件正确:
# ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'acore';
# (这取决于您的 MySQL 版本和配置)

3、刷新权限SQL 语句(确保更改立即生效):FLUSH PRIVILEGES;
4、退出SQL 语句:quit;

3、MyRepack文件夹下建立2个bat文件,命名为:start_mysql.bat  和 import_databases.bat
4、start_mysql.bat  内容:

  1. @echo off
  2. cd mysql/bin
  3. mysqld --console --standalone
  4. pause
复制代码
5、import_databases.bat 内容:(主要用于导入以前备份导出的数据库sql文件)
  1. @echo off
  2. echo Importing AzerothCore databases...
  3. mysql\bin\mysql -u root -e "CREATE DATABASE IF NOT EXISTS acore_auth;"
  4. mysql\bin\mysql -u root -e "CREATE DATABASE IF NOT EXISTS acore_characters;"
  5. mysql\bin\mysql -u root -e "CREATE DATABASE IF NOT EXISTS acore_world;"
  6. mysql\bin\mysql -u root acore_auth < database/acore_auth.sql
  7. mysql\bin\mysql -u root acore_characters < database/acore_characters.sql
  8. mysql\bin\mysql -u root acore_world < database/acore_world.sql
  9. echo All databases has been imported successfully!
  10. pause
复制代码
6、可以使用数据库软件HeidiSQL软件连接数据库,对数据库进行进行操作,修改用户名和密码

7、
初始化数据库
  • 执行 sudo mysql 进入数据库的终端
  • 执行以下SQL语句,创建acore用户,创建acore_world、acore_characters、acore_auth三个数据库,并授权acore用户拥有这三个数据库的所有权限


DROP USER IF EXISTS 'acore'@'%';
CREATE USER 'acore'@'%' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

GRANT ALL PRIVILEGES ON * . * TO 'acore'@'%' WITH GRANT OPTION;

DROP DATABASE IF EXISTS `acore_world`;
CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

DROP DATABASE IF EXISTS `acore_characters`;
CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

DROP DATABASE IF EXISTS `acore_auth`;
CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'%' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'%' WITH GRANT OPTION;
  1. DROP USER IF EXISTS 'acore'@'%';
  2. CREATE USER 'acore'@'%' IDENTIFIED BY 'acore' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;

  3. GRANT ALL PRIVILEGES ON * . * TO 'acore'@'%' WITH GRANT OPTION;

  4. DROP DATABASE IF EXISTS `acore_world`;
  5. CREATE DATABASE `acore_world` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

  6. DROP DATABASE IF EXISTS `acore_characters`;
  7. CREATE DATABASE `acore_characters` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

  8. DROP DATABASE IF EXISTS `acore_auth`;
  9. CREATE DATABASE `acore_auth` DEFAULT CHARACTER SET UTF8MB4 COLLATE utf8mb4_general_ci;

  10. GRANT ALL PRIVILEGES ON `acore_world` . * TO 'acore'@'%' WITH GRANT OPTION;
  11. GRANT ALL PRIVILEGES ON `acore_characters` . * TO 'acore'@'%' WITH GRANT OPTION;
  12. GRANT ALL PRIVILEGES ON `acore_auth` . * TO 'acore'@'%' WITH GRANT OPTION;
复制代码


您需要登录后才可以回帖 登录 | 立即注册

QQ群:193157782|Blog|AzerothCore|AC zhCN Linktrees ( 苏ICP备2023024864号-2 )

GMT+8, 2025-12-6 13:43 , Processed in 0.040149 second(s), 22 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表