目的
在已运行MariaDB服务的基础上安装并使用MySQL数据库服务。
运行环境及软件版本:
系统:Windows10 企业版
MySQL版本:mysql-8.0.27-winx64(简洁版)
MariaDB版本:mariadb-10.4.12
下载步骤
首先从官网获得mysql的安装包:
https://www.mysql.com/
进入官网后点击“DOWNLOADS”,选择“MYSQL COMMUNITIY(GPL) Downloads”
选择“MySQL Community Server”
进入下载界面:(选择不带Debug Binaries & Test Suite的)
无需注册登录,直接下载
安装步骤
解压
将下载的压缩包解压,无需安装,可直接使用。
此处笔者将该文件夹直接放在了D盘下,文件夹路径为:
D:\mysql-8.0.27-winx64
配置my.ini文件
进入D:\mysql-8.0.27-winx64,在文件下新建一个文件my.ini:
在my.ini中录入文件路径和端口:
此处需特别注意端口号,mysql和mariadb的默认端口都是3306,由于笔者已在使用mariadb,3306、3307等端口已被占用,所以在这里要配置一个未被占用的端口,否则启动服务时会报错。
这里配置的端口为3311:
[mysqld]
basedir=D:\mysql-8.0.27-winx64
datadir=D:\mysql-8.0.27-winx64\data
port=3311
配置环境变量
右击计算机,选择属性-高级系统设置-高级-环境变量:
修改系统变量(注意不是用户变量)中的Path,点击编辑:
新建一个环境变量,地址指到mysql的bin目录下,此处为D:\mysql-8.0.27-winx64\bin,依次点击确定,保存该变量。
创建服务
使用管理员运行命令提示符(不能直接WIN+R)
检查系统中是否已经注册过MySQL服务:
进入任务管理器-服务,检查是否有mysql服务;
如果使用了该服务,则可以创建一个其他名称的服务;若未使用该服务,将原有mysql服务先删除,再由MySQL创建一个同名服务。
此处笔者未使用该服务。
删除服务:(请确认该服务未被使用)
sc delete mysql
新建服务:一定要进入MySQL的执行文件目录,且要指定my.ini文件路径,否则默认运行mariadb的执行文件
D:\mysql-8.0.27-winx64\bin\mysqld.exe install MySQL --defaults-file="D:\mysql-8.0.27-winx64\my.ini"
(其中,MySQL为服务名)
大约等待半分钟到一分钟后,显示Service successfully installed.
D:\mysql-8.0.27-winx64下多了一个data文件夹。
创建root用户:
初始化mysql数据库,建立一个具有空密码的root用户:
mysqld --initialize-insecure --user=mysql
启动服务:
net start mysql
如果遇到报错:
可使用mysqld --consol命令查看一下错误日志,看是否有端口冲突或者配置文件出错之类的错误。
mysqld --consol
为root用户设置密码:
mysqladmin -u root -p password 123456(新密码)
Enter password: 旧密码
由于前面步骤中设置的密码为空,故无需输入密码,直接回车即可。
使用MySQL
MySQL 安装完成后只支持 localhost 访问,需要授权远程访问。
授权远程登录:
mysql8.0需要先创建用户和设置密码,然后才能授权。如果按照以前的方式授权(grant all privileges on . to ‘root’@’%’ identified by ‘root’ with grant option;),会报错
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
登录mysql
mysql -uroot -p123456(密码) -hlocalhost -P3311
创建admin用户:
create user 'admin'@'%' identified by '123456';
给admin用户授权:
grant all privileges on *.* to 'admin'@'%' with grant option;
刷新权限池:
flush privileges;
给root用户授权:
update user set host='%' where user='root';
flush privileges;
切换数据库:
use mysql;
查看用户信息:
select host, user, authentication_string, plugin from user;
root 用户的 host 已经变成 %,说明可以远程访问了。
停止服务
net stop mysql
卸载mysql:
mysqld –remove
引用
https://www.jianshu.com/p/147b3811699c
https://blog.csdn.net/weixin_40079336/article/details/81395590
https://blog.csdn.net/summerking/article/details/102705155?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2aggregatepagefirst_rank_ecpm_v1~rank_v31_ecpm-2-102705155.pc_agg_new_rank&utm_term=mariadb%E5%92%8Cmysql%E5%8F%AF%E4%BB%A5%E5%90%8C%E6%97%B6%E8%BF%90%E8%A1%8C%E5%90%97&spm=1000.2123.3001.4430
https://www.cnblogs.com/Iqiaoxun/p/5437802.html
感谢公司同事的文档支持。