这是在DataWhale的第一次打卡文章,也是时隔三年再动笔,希望持续下去。
我没想到花费了一整天的时间来配置我的写作环境(Typora+PicGo+腾讯云oss),因为我不想我的文字局限在某个平台上,很被动,想要掌握在自己的手里,一个好的写作环境就像写作业时清理书桌一样,带给自己好心情hhh。闲话到此为止,开始正文。
我没有完全按照教程,而是根据我已有的资源软件(比如Scoop),来完成MySQL的安装。**为什么用Scoop呢,因为安装又快有方便呀,还好解决环境的问题。**不过因为不一样,我感觉会踩坑,这一篇文章,是打卡、是踩坑经验、是教程。
文章目录
- 1、Scoop安装MySQL(确保自己安装了main bucket)
- 2、启动登录
- 3、使用 Navicat 连接 MySQL(推荐指数5星呢)
- 3.1、下载安装Navicat Lite
- 3.2、连接失败1251问题的解决
- 3.3 MySQL改密以及配置用户文件
- 3.4、用Navicat连接MySQL
- 4、使用 Navicat 导入 SQL脚本
- 4.1 导入失败怎么办?看过来
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
成功运行后如下图
接着最小化这个窗口(嫌麻烦可以用standalone那个命令),再开一个powershell
登录MySQL来验证是否能登录,输入
mysql -u root -p
命令解读:
-u
是user的意思,后面跟着用户名,这里用户名是root;-p
是password的意思
会有让你输入密码的情况,因为Scoop安装后密码为空,所以直接回车
出现下图则代表登录成功了
保持这个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会显示下图。
这意味着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
。因为初始密码为空,所以我们在这里设置为空
如下图
3.3 MySQL改密以及配置用户文件
1、顺带着把密码给改了
ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';
在这里,
newpassword
应该替换为你想要设置的新密码。
如下图
为了使上述更改生效,需要运行 FLUSH PRIVILEGES
命令:
FLUSH PRIVILEGES;
解读:在 MySQL 中,用户的权限信息是在服务器启动时加载到内存中的,然后就不会再次从磁盘读取,除非你执行了
FLUSH PRIVILEGES
命令。
以上步骤后,可以使用 exit;
命令退出 MySQL 命令行:
exit;
2、配置用户文件
先来看DataWhale要求的设置:
下面开始设置:找到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
一图胜所有
可以点击测试连接,出现连接成功字样说明安装成功
4、使用 Navicat 导入 SQL脚本
先下载脚本:
https://github.com/datawhalechina/wonderful-sql/blob/main/materials/create_table_sql/shop.sql
- 打开 GitHub 上的 SQL 脚本文件。
- 右键页面右上角的 “Raw” 按钮。
- 然后选择 “将链接另存为” 以下载文件
然后导入SQL文件
选项的含义:
- Run multiple queries in each execution: 这个选项允许 Navicat 在每次执行时运行多条查询。如果 SQL 脚本文件包含多条独立的 SQL 语句,应该选择这个选项。这里关闭这个选项,如果选中会出错。
- Set AUTOCOMMIT=0: 这个选项将关闭自动提交。在 SQL 中,提交是指将事务中的更改永久保存到数据库中。如果 SQL 脚本中包含了需要在一个事务中一起执行的多条 SQL 语句,应该选择这个选项。在导入完成后,需要手动提交事务以保证所有的更改都被保存到数据库中。
执行完毕后,如下图:
可能不能看到导入的数据表,点击刷新:
导入成功
4.1 导入失败怎么办?看过来
但是!有的小伙伴会出现问题,如下图:
这意味着这个名字已经被使用了,可能是一个已存在的表或者视图。怎么办呢,如果存在就替换呀,嘿嘿,这时候需要我们去修改原来的sql文件。
找到下载的sql文件,右键用记事本(我是notepad3)打开,找到最后两行(212行)(或者Ctrl+F搜索SELECT * FROM product
,找到上一行),发现代码是
CREATE view `view_product` as
替换为下面这个代码,也就是增加了个Replace:
CREATE OR REPLACE view `view_product` as
之后保存文件再导入,就ok啦。
至此,MySQL的安装到此结束,欢迎一起交流~~~
求关注,求点赞,求转发,求收藏!您的喜欢是我创作最大的动力!