Mysql5.7.23Windows下安装

1、下载文件

下载路径:https://dev.mysql.com/downloads/mysql/5.7.html。有选项可以跳过账号登录。

image.png

2、解压文件到D盘

image.png

3、设置环境变量

MYSQL_HOME=D:\yangkunlin\mysql-5.7.23-winx64
Path=%MYSQL_HOME%\bin

4、设置初始化文件my.ini

在MYSQL_HOME目录下新建my.ini文件

[mysqld]
##skip-grant-tables=1
port = 3306
basedir=D:\yangkunlin\mysql-5.7.23-winx64
datadir=D:\yangkunlin\mysql-5.7.23-winx64\data
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysql]
default-character-set=utf8

5、cmd安装并启动服务

进入cmd命令符窗口
执行命令mysqld -install,安装服务。(若以前安装过,可使用mysqld -remove卸载服务)
启动服务net start mysql

第一次启动需执行初始化
执行命令mysqld --initialize-insecure
否则可能启动报错,无法启动

image.png

6、密码重置

重启MqSQL服务后,运行mysql -uroot -p 让你输入密码 直接按回车忽略

可以成功登入mysql

然后更新root账户的密码为'root'

UPDATE mysql.user SET authentication_string = PASSWORD('adam+C'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';

然后输入flush privileges;(刷新账户信息)

执行quit或ctrl+Z退出

然后将my.ini文件中刚才加的skip-grant-tables这一行删掉,保存后再重启MySQL服务。此时可通过Navicat访问。


若机器为固定IP时再创建

另外需要再创建一个admin账户 密码为admin 地址为192.168.7.52

CREATE USER 'admin'@'192.168.7.52' IDENTIFIED BY 'admin';

并且授权可以访问所有数据库表 并且授权帐号为admin 地址是 192.168.7.52
GRANT ALL ON . TO 'admin'@'192.168.7.52';

7、常见问题处理

7.1 执行mysqld install报MSVCR120.dll丢失问题

image.png

下载VC redist packages for x64点击执行安装即可。

7.2 执行mysqld --initialize-insecure报cant create directory的问题
image.png

【解决方案】my.ini中的basedir和ditadir应该是双斜杠


image.png
7.3 远程访问没有权限无法访问的问题

GRANT ALL PRIVILEGES ON . TO 'root'@'%' IDENTIFIED BY '123456';
这里的123456为你给新增权限用户设置的密码,%代表所有主机,也可以具体到你的主机ip地址
flush privileges;
这句表示从mysql数据库的grant表中重新加载权限数据

7.4 导入视图报The user specified as a definer ('umpp'@'%') does not exist

公司一个项目导入视图时,报以上错误。

grant all privileges on *.* to umpp@"%" identified by "password";
flush privileges;

报哪个没权限,就给哪个赋权(见上边umpp的示例)

8、mysql8和mysql5.7共存安装

两者都解压安装,在安装完mysql8,再安mysql5.7时,因为其MYSQL_HOME和PATH(%MYSQL_HOME%\bin)都指向了mysql8的路径。要先将MYQL_HOME和path改成5.7的包所在路径。
再执行mysql5.7的安装,要为其重新取一个服务名字,我这里用的mysql57,并且my.ini的端口要改成其他的,不要和以前的mysql8冲突,我这里改成了3307。
mysqld -install mysql57
mysqld --initialize-insecure 若不修改环境变量,强行用5.7的全路径执行此语句(即D:\yangkunlin\tools\mysql-5.7.23-winx64\bin\mysqld --initialize-insecure),同样会报data存在的错误(猜测还是找到了mysql8下的data文件夹)。

访问命令:
mysql57 -P3307 -uroot -p


mysql57访问.png

安装完毕后,把myql8的path添加上,保证mysql8正常可用。

你可能感兴趣的:(Mysql5.7.23Windows下安装)