背景:公司电脑,没有管理员权限
阶段一:准备阶段
步骤一:选择MySQL版本。
个人开发推荐使用绿色版本5.7.44
步骤二:获取资源。
链接:https://downloads.mysql.com/archives/community/
资源名:Windows (x86, 64-bit), ZIP Archive
阶段二:安装部署阶段
步骤一:解压文件
文件解压路径:D:\Program(不要有空格或中文)
根目录D:\Program\mysql-5.7.44下创建空白my.ini文件
[mysqld] # MySQL根目录(替换为你的解压路径) basedir = D:\mysql-5.7.39-winx64 # 数据存储目录(自动生成,无需手动创建) datadir = D:\mysql-5.7.39-winx64\data # 端口号(默认3306,若被占用可修改) port = 3306 # 字符集(推荐utf8mb4,支持emoji) character-set-server = utf8mb4 # 服务器ID(单机可随意设置,集群需唯一) server-id = 1[mysql] # 客户端字符集 default-character-set = utf8mb4[client] # 客户端连接端口 port = 3306 default-character-set = utf8mb4
根目录D:\Program\mysql-5.7.44下创建空白data文件夹
步骤二:初始化数据库
cmd跳转bin文件夹:cd /d D:\Program\mysql-5.7.44\bin
初始化数据库:mysqld --initialize --console
此时输出报错:
mysqld: Could not create or access the registry key needed for the MySQL application
to log to the Windows EventLog. Run the application with sufficient privileges once to create the key, add the key manually, or turn off logging for that application. 不管,这是MySQL 无法向 Windows 系统的 “事件日志”(EventLog)写入日志信息(这是 Windows 系统级的日志,需要注册表权限)。
但这仅影响 “日志记录方式”,不影响数据库的核心功能(如启动服务、客户端连接、数据增删改查等)。但InnoDB 存储引擎初始化完成、生成了服务器 UUID(数据库标识)7eb7945e-9cce-11f0-8e7e-c4efbbe9e553、成功生成了 root 临时密码eoa_Dwtne0+3。
步骤三:启动服务
mysqld --defaults-file=../my.ini
运行后此cmd窗口会保持常启状态,维持服务启动,因此无法对此窗口做操作,此时另起一个cmd窗口
阶段三:初始配置阶段
步骤一:登录MySQL并修改密码
进入MySQL目录:cd /d D:\Program\mysql-5.7.44\bin
登录启动中的MySQL服务:mysql -u root -p
输入初始密码:eoa_Dwtne0+3(此时已经切换至MySQL状态,可以写SQL语句了)
修改初始密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'admin123';
刷新配置:flush privileges;
步骤二:日志与参数优化
配置my.ini,减少系统日志相关的warning和error,my.ini终版:(加了之后再起服务居然没有任何输出了,我还以为出错了,确实干净)
[mysqld] # MySQL根目录(替换为你的解压路径) basedir = D:\Program\mysql-5.7.44 # 数据存储目录(自动生成,无需手动创建) datadir = D:\Program\mysql-5.7.44\data # 端口号(默认3306,若被占用可修改) port = 3306 # 字符集(推荐utf8mb4,支持emoji) character-set-server = utf8mb4 # 服务器ID(单机可随意设置,集群需唯一) server-id = 1 # 新增:指定错误日志文件(路径改为你的MySQL根目录,确保能创建文件) log-error = D:\Program\mysql-5.7.44\mysql_error.log # 禁用系统事件日志(避免重复报错) log_syslog=0[mysql] # 客户端字符集 default-character-set = utf8mb4[client] # 客户端连接端口 port = 3306 default-character-se
阶段四:数据库操作阶段
步骤一:创建数据库
CREATE DATABASE sql_study DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
步骤二:创建用户并授权
创建用户:CREATE USER 'jiang'@'localhost' IDENTIFIED BY 'admin123';
授权该用户访问指定数据库的所有表:GRANT ALL PRIVILEGES ON sql_study.* TO 'jiang'@'localhost';
刷新权限:flush privileges;
步骤三:创建表
切换到数据库:USE sql_study
创建首张表:CREATE TABLE user ( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR(50) NOT NULL UNIQUE, create_time DATETIME DEFAULT CURRENT_TIMESTAMP) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
此时才可以使用外部DBMNS连接到这个数据库:jdbc:mysql://localhost:3306/、jiang/admin123
按照上述步骤,我们称初始化MySQL和启动MySQL服务的窗口为cmd1,登录MySQL和修改密码操作数据库的窗口为cmd2
cmd1维持MySQL服务,cmd2类似于dbeaver相当于一个DBMS客户端,故关闭cmd2后其他客户端仍旧可以连接数据库,但关闭cmd1后其他客户端将无法连接数据库
数据库关闭:依次关闭cmd2、cmd1
数据库再起:
cd /d D:\Program\mysql-5.7.44\bin
mysqld --defaults-file=../my.ini
访问数据库:mysql -u root -p