一 配置 MySql
二 卸载 MySql
三 MySql 的版本差异
配置环境:Win 7 64位
安装版本:MySql 5.7.22
卸载版本:MySql 8.0.11
一 配置 MySql
引文地址:https://www.cnblogs.com/xsmile/p/7753984.html
- 工欲善其事,必先利其器!我们到官网上下载所需要的版本。
<MSI版本的是直接界面化下一步安装的,下面的为zip压缩包解压dos窗口安装>
- 下载完成,将文件解压到你想要安装的盘里。这里我安装到了E盘。之后以管理员身份运行DOS窗口。进入到mysql的bin文件夹下:
- 重点来了:我们需要创建一个my.ini的文件,放在bin目录里面。内容为:
其中basedir的路径是安装mysql的路径,datadir就是刚创建的data目录路径。(之前路径分割用的"\\",坑了好久,不知道别人怎么就可以的。还有就是my.ini文件的位置,别人放在了mysql文件夹下,坑了好久。)View Code
- 接下来在dos窗口里面输入:mysqld --initialize-insecure (看别人用的是mysqld --initialize=insecure --user=mysql 放我机器不好使了,可能版本不同造成的吧)
- 再输入:mysqld -install (如果说已经存在,可以使用 sc delete mysql 或者 mysql -remove 将其删除)
会显示Service successfully installed.
- 最后输入:net start mysql #启动mysql服务
<当然还会有MySQL 服务无法启动的情况出现。这时查看你的my.ini文件中basedir和datadir中路径是不是上面说的那样设置的。> - 此时mysql没有密码,需要进行设置密码,输入:mysqladmin -u root password *******
这样就可以进入mysql里面了。输入:mysql -u root -p - 看一下我们mysql里初始的表有哪些,输入:show databases; (注意最后的分号!!!)
二 卸载 MySql
MySql卸载不干净,会导致MySql 再次安装无法启动等问题。
后来自己摸索了一下午,最后才解决问题。特别整理分享给大家,避免走弯路。
MySql卸载版本:8.0.11
1 删除mysql文件夹
2 开始-运行里面输入regedt,打开注册表.注册表里MySQL的项就是这三项:
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL
HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL【不一定有】
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Eventlog/Application/MySQL【不一定有】
注意:卸载8.0.11版本时,MySQL项下出现了 类似的项,路径也是我的8.0.11安装路径。(所以这里需要注意删除)
3 进入命令行----输入: sc delete 服务名
4 如果电脑安装了mysql-connector-net ,也必须卸载。(博主就是没有卸载,然后悲催得卸载了好几回才发现了!!!!)
三 MySql 的版本差异可能导致的问题(主要说8.0 版本)
参考博客链接:https://blog.youkuaiyun.com/huangyuehong914/article/details/80503195
1 创建用户和授权
在mysql8.0创建用户和授权和之前不太一样了,其实严格上来讲,也不能说是不一样,只能说是更严格,mysql8.0需要先创建用户和设置密码,然后才能授权。
#先创建一个用户
create user
'hong'
@
'%'
identified by
'123123'
;
#再进行授权
grant all privileges on *.* to
'hong'
@
'%'
with grant option;
如果还是用原来5.7的那种方式,会报错误:
grant all privileges on *.* to
'sroot'
@
'%'
identified by
'123123'
;
ERROR 1064 (42000): You have an error
in
your SQL syntax; check the manual that corresponds to
your MySQL server version
for
the right syntax to use near
'identified by '
123123
''
at line 1
2 MySQL8.0 的远程链接
MySQL8.0 安装完成后出现无法远程链接的现象,这是因为MySQL8.0 只支持 localhost 访问,我们必须设置一下才可以远程访问。
具体设置步骤如下:
① 登录MySQL
执行命令为:mysql -u root -p
回车后输入密码
② 选择 mysql 数据库
执行命令为:use mysql;
查看mysql 数据库中存储的用户信息的 user 表。
③ 查看mysql 数据库的 user 表中当前 root 用户的相关信息
执行命令为:select host,user,authentication_string,plugin from user;
执行完命令后显示一个表格, root 用户的 host默认显示的 localhost,说明只支持本地访问,不允许远程访问。
④ 更改 host 的默认配置
执行命令为:update user set host='%' where user='root';
⑤ 刷新
执行命令为:flush privileges;
之前以为这样就行了,然后呢,在用navicat进行mysql的远程连接时,出现了弹窗报错:
出现这个原因是mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password, 解决问题方法有两种,一种是升级navicat驱动,一种是把mysql用户登录密码加密规则还原成mysql_native_password. 我用是第二种方式 :ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password'; #更新一下用户的密码
FLUSH PRIVILEGES; #刷新权限
问题就解决了。
笔者自认才疏学浅,仅略知皮毛,文中错谬之处在所难免,若蒙诸君不吝告知,将不胜感激。