安装1个数据库
-
官网下载免安装压缩包: https://downloads.mysql.com/archives/community/ (zip开头,msi是安装包)
-
下载后解压到某一个目录,随便什么地方都可以。解压后的文件比通过安装包安装的少一个 data 文件夹和my.ini 数据库配置文件。data文件夹后边初始化可以生成,因此只需要配置my.ini文件即可。
[mysqld] # 跳过密码验证 第7步设置过密码后将此行注释并重启mysql服务 skip-grant-tables=1 # 端口号 port = 3306 # MySQL安装目录 basedir=D:\Program Files\MySQL\ # 数据库文件存放地址 datadir=D:\Program Files\MySQL\Data # 最大连接数 max_connections=200 # 服务端使用的字符集 character-set-server=utf8 # 避免大数据插入或者更新失败,最大为1024M max_allowed_packet = 500M # 数据库默认使用引擎 default-storage-engine=INNODB # 避免1055错误 sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' [mysql] # mysql客户端默认的字符集,5.7才有的,5.6没有default-character-set属性 default-character-set=utf8
-
配置环境变量
在 path 中设置MySQL的目录 *D:\Program Files\MySQL\bin*
系统变量新建一个变量:变量名:MYSQL_HOME
变量值:D:\Program Files\MySQL\ (这个新建的变量可以不加)
PATH里面新增路径 %MYSQL_HOME%\bin\
-
安装服务
管理员启动CMD,切换到MySQL的bin目录下,输入
mysqld -install <service name>(不写默认为MySQL)
安装服务,可以通过 WIN + R输入services.msc 查看是否安装成功并确认服务安装的路径,如不是配置文件里设置的路径,那么需要删除服务sc delete mysql
或者mysqld-nt -remove
然后重复此步 -
初始化数据库
mysqld --initialize-insecure --user=mysql
可以看到生成了data文件夹 -
启动服务
net start mysql
-
打开mysql,设置root账户密码
mysql -u root -p
此时由于配置设置了免密登录因此不需要输入密码UPDATE mysql.user SET authentication_string = PASSWORD('root'), password_expired = 'N' WHERE User = 'root' AND Host = 'localhost';
然后输入
flush privileges;
(刷新账户信息)执行quit
或ctrl+Z
退出之后把my.ini配置文件第一行
skip-grant-tables = 1
删除,保存文件后重启MySQL服务net stop mysql
net start mysql
-
新建一个admin账户
CREATE USER 'admin'@'主机IP' IDENTIFIED BY 'admin';
授权帐号admin 在主机IP地址下可以访问所有数据库表GRANT ALL ON *.* TO 'admin'@'主机IP';
安装多个数据库
由于工作需要多个版本的数据库,上一个安装的是MySQL5.7版本,这里需要安装一个8.0.20版本的。
-
首先需要在环境变量里配置bin目录的路径并且要把位置移到%MYSQL_HOME%\bin\上边。
-
将第一份MySQL文件夹下的my.ini文件复制一份。
-
切换到Bin目录下进行初始化:
mysqld --initialize --console
如果先安装服务在初始化会进行报错初始化成功后会有如下信息,其中最后一行就是生成的默认密码。
2020-12-23T10:36:36.329607Z 0 [System] [MY-013169] [Server] D:\Program Files\MySQL8.0\bin\mysqld.exe (mysqld 8.0.20) initializing of server in progress as process 5852 2020-12-23T10:36:36.358893Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous. 2020-12-23T10:36:36.370197Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started. 2020-12-23T10:36:43.061709Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended. 2020-12-23T10:36:53.673603Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: :3rKfjpDw(v>
-
在bin目录下执行
mysqld --install MYSQL8
,这里给服务起个名字,以避免报错并进行区分。如果想要删除则执行sc delete mysql8
,停止服务net stop mysql8
-
启动服务:
net start mysql8
mysql8也就是上边自己设置的名字。 -
登录设置密码:
mysql -uroot -P3307 -p
输入上边初始化生成的密码。如果这时忘记密码可以将my.ini里的第一行取消注释然后保存并重启服务,这时就可以直接登录然后直接开始第七步即可。 -
重置密码:依次使用以下命令
alter user 'root'@'localhost'identified with mysql_native_password by '你的密码'
flush privileges;
exit;
安装前后可能会出现的问题
-
问题1:由于找不到VCRUNTIME140_1.dll,无法继续执行代码。重新安装程序可能会解决此问题
解决办法:安装微软运行库合集
-
问题2:安装第二个MySQL,版本为8.0.2,重设密码报1064
报错原因:8.0以后重设密码的方式已经改变。
解决办法:
alter user 'root'@'localhost'identified with mysql_native_password by '你的密码'
-
问题3:安装MySQL后,其他局域网的电脑连不上本地MySQL
解决办法:
update user set host='%' where user ='root';
允许任意域名访问
FLUSH PRIVILEGES;
刷新权限
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION;
授予所有权限这时别的电脑已经可以连接root用户了,如果此时还连不上请打开防火墙即可。后边每个电脑出于安全问题都为其新建一个账号进行访问:
CREATE USER 'admin'@'主机IP' IDENTIFIED BY '用户名';
后边还需要分配允许访问的数据库、表,以及允许使用的操作:grant 权限操作 on 库名.表名 to '用户名'@'主机IP';