Scoop安装配置MySQL最详细版(含Navicat连接MySQL)

本文详细介绍了如何使用Scoop在Windows上安装MySQL,以及遇到的1251错误解决方案,通过Navicat连接MySQL并修改身份验证插件。此外,还涵盖了Navicat导入SQL脚本的步骤,包括处理导入失败的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这是在DataWhale的第一次打卡文章,也是时隔三年再动笔,希望持续下去。

我没想到花费了一整天的时间来配置我的写作环境(Typora+PicGo+腾讯云oss),因为我不想我的文字局限在某个平台上,很被动,想要掌握在自己的手里,一个好的写作环境就像写作业时清理书桌一样,带给自己好心情hhh。闲话到此为止,开始正文。

我没有完全按照教程,而是根据我已有的资源软件(比如Scoop),来完成MySQL的安装。**为什么用Scoop呢,因为安装又快有方便呀,还好解决环境的问题。**不过因为不一样,我感觉会踩坑,这一篇文章,是打卡、是踩坑经验、是教程。

1、Scoop安装MySQL(确保自己安装了main bucket)

Scoop install mysql

安装好之后会有如下的提示

Run 'mysqld --standalone' or 'mysqld --console' to start the Database,
or run following command as administrator to register MySQL as a service. See:
https://dev.mysql.com/doc/refman/en/windows-start-service.html

mysqld --install MySQL --defaults-file="D:\Scoop\apps\mysql\current\my.ini"

To stop and/or delete the Service run 'sc stop MySQL' and 'sc delete MySQL'.

会提示是否设置为服务,看是否需要,这取决于具体需求。如果只是在本地开发环境中使用 MySQL,可能并不需要将其设置为服务。但是,如果在生产环境(如服务器)中运行 MySQL,那么将其设置为服务会更加方便,因为服务会在系统启动时自动运行,无需手动启动。我本地使用,就不设置服务了。

2、启动登录

启动命令的区别:

  • mysqld --standalone 在后台启动;
  • mysqld --console在控制台窗口启动

这里我选择运行mysqld --console

成功运行后如下图

image-20230720175159750

接着最小化这个窗口(嫌麻烦可以用standalone那个命令),再开一个powershell

登录MySQL来验证是否能登录,输入

mysql -u root -p

命令解读:-u是user的意思,后面跟着用户名,这里用户名是root;-p是password的意思

会有让你输入密码的情况,因为Scoop安装后密码为空,所以直接回车

image-20230720181222064

出现下图则代表登录成功了

image-20230720181402932

保持这个powershell窗口开着不要动。

3、使用 Navicat 连接 MySQL(推荐指数5星呢)

3.1、下载安装Navicat Lite

先下载Navicat,我这里是DataWhale提供的DataWhale Lite的链接:

链接:https://pan.baidu.com/s/1xdAEXkATNfIS_yhYNROlAQ

提取码:vktl

先下载安装,记得更换路径,不要在C盘(唉,是昨天C盘爆满,一怒之下重装系统的慨叹

3.2、连接失败1251问题的解决

**注意!!!**如果直接用Navicat连接MySQL会显示下图。

image-20230720181940083

这意味着Navicat和MySQL协议不匹配,要么升级 Navicat Lite,要么更改 MySQL 用户的身份验证插件。请注意更改身份验证插件,可能会降低安全性!不过我这里是本地学习,就更改MySQL。

输入以下命令,更改MySQL身份验证协议,请注意MySQL命令后面带着“;”号:

 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';

逐部分解析这个命令:

  • ALTER USER 'root'@'localhost':这个部分表示我们要更改的用户是在 localhost 上的 root 用户。
  • IDENTIFIED WITH mysql_native_password:这个部分将用户的身份验证插件更改为 mysql_native_password。MySQL 提供了多种身份验证插件,而 mysql_native_password 是最常见的一种,它使用了基于密码的身份验证方案。
  • BY 'yourpassword':这个部分将 root 用户的密码更改为 yourpassword。因为初始密码为空,所以我们在这里设置为空

如下图

image-20230720185953425

3.3 MySQL改密以及配置用户文件

1、顺带着把密码给改了

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

在这里,newpassword 应该替换为你想要设置的新密码。

如下图

image-20230720190010907

为了使上述更改生效,需要运行 FLUSH PRIVILEGES 命令:

FLUSH PRIVILEGES;

解读:在 MySQL 中,用户的权限信息是在服务器启动时加载到内存中的,然后就不会再次从磁盘读取,除非你执行了 FLUSH PRIVILEGES 命令。

以上步骤后,可以使用 exit; 命令退出 MySQL 命令行:

exit;

2、配置用户文件

先来看DataWhale要求的设置:

image-20230720200516450

下面开始设置:找到my.ini文件所在地参照我下面的文件目录(记得要修改成自己的)。我这里用vim编辑器(什么?你没有vim?安装一下很快的Scoop install vim)或者找到配置文件用记事本来修改保存:

 vim "D:\Scoop\apps\mysql\current\my.ini"

然后,添加配置(操作步骤:按键盘 i 键变为编辑模式->方向键移动光标到插入位置->粘贴下面命令->键盘按esc键退出编辑模式->键盘按:wq退出文件编辑

**请记住数据库文件的存储位置要修改为自己的位置!!!**除了要求的设置,我额外加了一些其他设置,可加可不加。

[mysqld]
# 数据库数据文件存储的位置,记得修改为自己的
datadir=D:/scoop/persist/mysql/data

# secure_file_priv 限制了 LOAD DATA, SELECT ... INTO OUTFILE, LOAD_FILE(), ... 等文件操作的目录。如果设置为空,表示不做限制,要设置这个,否则可能无法导入表
secure_file_priv=''

# 设置默认存储引擎,设置为 InnoDB 以支持事务、行级锁定和外键
default-storage-engine=INNODB

# 设置默认字符集,设置为 utf8mb4 以支持包括中文在内的全字符集
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 

# 设置数据库对象、数据库名和表名为小写
lower_case_table_names=1

# 允许的最大并发连接数
max_connections=200

# 允许从一个主机连续连接失败的次数,超过此数值,将暂时阻止该主机的连接请求,这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10

# 如果为 FALSE,则服务器不会自动将字符集设置为客户端的字符集。这样做可以确保服务器总是使用下面设置的 character-set-server 和 collation-server
character-set-client-handshake = FALSE 

# 新连接初始化时执行的命令,设置为 'SET NAMES utf8mb4' 以确保客户端使用正确的字符集
init_connect='SET NAMES utf8mb4'

# 默认使用“mysql_native_password”插件认证,这是 MySQL 最常用的身份验证插件(配置后输出有Warning,说设置成caching_sha2_password)更好,修改成caching_sha2_password之后测试也能连接,这里待定)
default_authentication_plugin=mysql_native_password

# 服务器监听的 TCP/IP 端口号
port=3306

[mysql]
# 设置 mysql 客户端的默认字符集,设置为 utf8mb4 以支持全字符集
default-character-set = utf8mb4 

[client]
# 默认连接的用户名
user=root

# mysql 客户端连接服务器时使用的默认 TCP/IP 端口号
port=3306

# 客户端发送给服务器的数据使用的字符集,设置为 utf8mb4 以支持全字符集
default-character-set = utf8mb4

3.4、用Navicat连接MySQL

一图胜所有

image-20230720191210185

可以点击测试连接,出现连接成功字样说明安装成功

image-20230720191429102

4、使用 Navicat 导入 SQL脚本

先下载脚本:

https://github.com/datawhalechina/wonderful-sql/blob/main/materials/create_table_sql/shop.sql

  1. 打开 GitHub 上的 SQL 脚本文件。
  2. 右键页面右上角的 “Raw” 按钮。
  3. 然后选择 “将链接另存为” 以下载文件

image-20230720201915608

然后导入SQL文件

image-20230720212615271

选项的含义:

  • Run multiple queries in each execution: 这个选项允许 Navicat 在每次执行时运行多条查询。如果 SQL 脚本文件包含多条独立的 SQL 语句,应该选择这个选项。这里关闭这个选项,如果选中会出错。
  • Set AUTOCOMMIT=0: 这个选项将关闭自动提交。在 SQL 中,提交是指将事务中的更改永久保存到数据库中。如果 SQL 脚本中包含了需要在一个事务中一起执行的多条 SQL 语句,应该选择这个选项。在导入完成后,需要手动提交事务以保证所有的更改都被保存到数据库中。

执行完毕后,如下图:

image-20230720213847288

可能不能看到导入的数据表,点击刷新:

image-20230720214004410

导入成功

image-20230720214030706

4.1 导入失败怎么办?看过来

但是!有的小伙伴会出现问题,如下图:

image-20230721090020162

这意味着这个名字已经被使用了,可能是一个已存在的表或者视图。怎么办呢,如果存在就替换呀,嘿嘿,这时候需要我们去修改原来的sql文件。

找到下载的sql文件,右键用记事本(我是notepad3)打开,找到最后两行(212行)(或者Ctrl+F搜索SELECT * FROM product,找到上一行),发现代码是

CREATE view `view_product` as

替换为下面这个代码,也就是增加了个Replace:

CREATE OR REPLACE view `view_product` as

image-20230721090248656

之后保存文件再导入,就ok啦。

至此,MySQL的安装到此结束,欢迎一起交流~~~

求关注,求点赞,求转发,求收藏!您的喜欢是我创作最大的动力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值