Windows11下配置MySQL方式,及部分错误解决方案
环境:windows11 专业版 、MySQL8.0.36
安装步骤
-
下载MySQL 8.0安装文件:您可以从MySQL官方网站下载MySQL 8.0的安装文件。访问 MySQL :: Download MySQL Community Server页面,选择Windows (x86, 64-bit), ZIP Archive版本,然后下载
-
解压下载后的压缩包 本文解压目录 为 F:\python_all\mysql-8.0.36 (可以自定义)
-
创建my.ini文件,并放在根目录下 本文范例放在 F:\python_all\mysql-8.0.36\my.ini
-
my.ini一般设置如下 可自行取舍修改 端口号遇冲突可自定义修改成别的端口
[mysqld] # IP地址 默认不写 # bind_adress=localhost # 端口号 注意这里没有配置默认的3306 即可以自定义 如果遇到端口冲突的话 port=3307 # mysql的安装根目录 basedir=F:\\python_all\\mysql-8.0.36 # datadir在哪里,则最终创建的mysql数据库文件就在哪里 datadir=C:\\Users\\why\\Desktop\\shortage # 最大连接数 max_connections=300 # 允许连接失败的次数 max_connect_errors=10 # 字符集 character-set-server=UTF8MB4 # 数据库引擎 如无特殊要求一律INNODB default-storage-engine=INNODB # 打开本地文件导入权限 local_infile=ON # 禁用binlog日志 如不禁用,则注释这下面这一行 skip-log-bin #是否启用慢查询日志,1为启用,0为禁用 slow_query_log = 1 #记录系统时区 log_timestamps = SYSTEM #慢查询执行的秒数,必须达到此值可被记录 long_query_time = 5 #将没有使用索引的语句记录到慢查询日志 log_queries_not_using_indexes = 0 #设定每分钟记录到日志的未使用索引的语句数目,超过这个数目后只记录语句数量和花费的总时间 log_throttle_queries_not_using_indexes = 60 #对于查询扫描行数小于此参数的SQL,将不会记录到慢查询日志中 min_examined_row_limit = 5000 #记录执行缓慢的管理SQL,如alter table,analyze table, check table, create index, drop index, optimize table, repair table等。 log_slow_admin_statements = 0 #提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力 #根据您的服务器IOPS能力适当调整 #一般配普通SSD盘的话,可以调整到 10000 - 20000 #配置高端PCIe SSD卡的话,则可以调整的更高,比如 50000 - 80000 innodb_io_capacity = 4000 innodb_io_capacity_max = 8000 [mysql] default-character-set=UTF8MB4 local_infile=ON [client] # 端口号 与mysqld配置一致 port=3307 default-character-set=UTF8MB4 local_infile=ON
配置MySQL
-
以管理员身份运行命令提示符(win11下 开始菜单右键,选择终端(管理员))
-
转到mysql的bin目录下 cd /d F:\python_all\mysql-8.0.36
-
安装MySQL服务并初始化
# 安装MySQL服务 默认配置文件选择my.ini文件路径 mysqld --install "MySQL" --defaults-file="F:\python_all\mysql-8.0.36\my.ini" # 初始化 MySQL mysqld --initialize --console
结果图如下 Ctrl+C保存 Tf3xLl(KifB/ 这一段初始密码注:如果不小心关闭窗口,忘记初始化生成的密码,可以删除初始化生成的data文件夹,重新初始化即可。
-
启动MySQL服务
net start mysql
-
登录MySQL 密码直接Ctrl+V即可,就是刚刚的初始密码
mysql -uroot -p
-
修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
-
创建新用户 比如:why
CREATE USER 'why'@'localhost' IDENTIFIED BY 'why11111';
-
授予全部权限并刷新
grant all privileges on *.* to 'why'@'localhost'; flush privileges;
-
查看当前账户
use mysql; select host,user from user;
报错汇总
-
ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost:3306' (10061)
- 端口无效,检查my.ini中设置的端口是否是3306,特别注意[mysqld]和[mysql]中port是否一致?
- 端口冲突,例如我碰到win11本地创建了MySQL服务,又在WSL Ubuntu虚拟机中创建了MySQL服务,两者的端口都是3306,可能导致问题发生
解决方案:修改my.ini文件,或者命令中加入-P 改成别的端口 mysql -uroot -P 3307 -p
-
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
忘记了root密码 解决方式很多 膜拜大神
-
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before