工作需要,Windows环境快速部署一个MySQL环境,选择了比较保守的5.7.*版。
1. 访问官网: MySQL :: Download MySQL Community Server
根据自己OS选择32位或者64位。
下载 mysql-5.7.28-winx64.zip 到本地,解压缩到C:\mysql57。
2. 编辑my.ini文件:
据说从5.7开始,MySQL需要自己创建my.ini文件。猫哥的配置如下:
[client]
port=3306
[mysql]
default-character-set=utf8
[mysqld]
port=3306
server_id=1
character-set-server=utf8
default-storage-engine=INNODB
sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
slow_query_log=0
long_query_time=2
local-infile=0
skip-external-locking
skip-grant-tables=true
#skip-innodb
#log-bin=mysql-bin
#binlog_format=mixed
max_connections=1000
query_cache_size=0
key_buffer_size=64M
sort_buffer_size=256kb
read_buffer_size=512kb
join_buffer_size=2M
read_rnd_buffer_size=2M
max_allowed_packet=16M
table_open_cache=256
tmp_table_size=64M
max_heap_table_size=64M
myisam_max_sort_file_size=64G
myisam_sort_buffer_size=32M
myisam_repair_threads=1
innodb_buffer_pool_size=64M
innodb_log_file_size=16M
innodb_log_buffer_size=2M
innodb_file_per_table=1
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=50
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size=20M
sort_buffer_size=20M
read_buffer=2M
write_buffer=2M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit=8192
basedir=C:\mysql57
datadir=C:\mysql57\Data
其中,“skip-grant-tables=true” 用于修改密码用。
3. 配置环境变量:
添加环境变量:MYSQL_HOME=C:\mysql57
再将 ;%MYSQL_HOME%\bin; 添加进PATH环境变量;
在powershell中,运行 mysqld -verbose --help ,运行正常,且打出来N行参数说明,表示环境变量配置成功了。
### 2023.09.29 遇到新问题
上面步骤执行到命令行运行mysqld,跳出这个报错。
3.1 经查证需要用DirectX修复工具
不想自己搜索,可以用链接: https://pan.baidu.com/s/188StHEhPuX4ag2VA6czNmw 提取码: g6u3
执行修复:
4. 启动MySQL:
因为猫哥下载的MySQL,自带了Data目录,而且目录里有很多文件... 不知道为什么跟网上很多帖子都不一样...
记得用管理员身份打开一个cmd窗口。
管理员身份开的cmd里直接运行
mysqld -install
net start MySQL
5. 修改默认root密码:
猫哥遇到的这件事情灰常狗血!运行 mysql -u root -p,提示密码错误...
参考网上的,mysqld --skip-grant-tables 运行无效,mysqladmin -u root set-password=xxx 也不行。
必须把这一行加入到my.ini文件里才可以。
skip-grant-tables=true
再启动,略过密码验证,进入MySQL数据库命令行界面。执行如下命令:
use mysql;
update user set authentication_string=password('root') where user='root';
flush privileges;
修改密码完成,退出mysql。重新启动MySQL:
net stop MySQL
net start MySQL
再次 mysql -u root -p,输入新密码可以进入。
后记:
11月10日晚上处理完,就休息了。今日补记,如有遗漏再修正。