问题描述:
在安装mysql 时,如果第一次没安装成功,第二次重装可能出现莫名奇妙的情况。通过一番尝试,发现,安装往上的教程还是无法成功安装的主要原因是第一次安装虽然未成功,但是mysql 默认的3306端口已被占用。导致在随后的安装过程中,虽然每一步操作都完美无误,但是依然会出现【服务无法启动】的经典错误。下边会详细讲述解决方案。
解决办法后边讲解。
一、先来看看正常的安装步骤:
(1)下载
1.从网上下载MySQL8.0.12版本,下载地址:https://dev.mysql.com/downloads/mysql/
(2)安装
这里如果下载的是zip 包,直接解压到一个安装目录即可完成;博主这里解压的目录是:D:\Mylargeprogram\Mysql\mysql-8.0.12-winx64。
如果你下载的msi 文件,双击打开,按照提示按照即可,记住设置root 密码很重要。
(3)配置
第一步:在文件目录 中新建一个my.ini的文件,代码如下,把其中的两处工作路径改为自己的按照路径即可。
[mysqld] # 设置3306端口 port=3306 # 设置mysql的安装目录 basedir=D:\Mylargeprogram\Mysql\mysql-8.0.12-winx64 # 设置mysql数据库的数据的存放目录 datadir=D:\Mylargeprogram\Mysql\mysql-8.0.12-winx64\data # 允许最大连接数 max_connections=200 # 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统 max_connect_errors=10 # 服务端使用的字符集默认为UTF8 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB # 默认使用“mysql_native_password”插件认证 default_authentication_plugin=mysql_native_password [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [client] # 设置mysql客户端连接服务端时默认使用的端口 port=3306 default-character-set=utf8
第二步:执行 mysqld --initialize-insecure 指令进行配置,安装路径会默认生成一个data文件夹
第三步: 再然后输入mysqld --install安装mysql服务
提示安装成功即可
第四步:启动服务 net start mysql
这里如果显示服务启动成功代表安装成功啦,但是这里一般会出现,正在启动服务,服务无法启动的错误。
【解决办法】:
(1)可以输入mysqld --console 启动 查看启动的报错信息,博主的报错信息是3306 端口已经被另一个服务占用,该次启动无法进行。这是问题的关键所在。
(2)去查找3306被谁占用了。步骤如下:
开始-运行-cmd, 输入 netstat -ano, 看第一列,后面的就是端口,找到3306 ,记住对应的PID
然后打开任务管理器查看 -> 选择列 -> 勾上 PID(进程标识符) -> 确定
在任务管理器找到刚才的PID的进程,查看是什么程序占用了端口,把它关闭
在重新启动mysql就不会包端口被占用的错误了
(3)重新先用msqld --remove 删除掉服务,再把data文件夹也删除,重新执行以下三条指令即可完成
mysqld --initialize-insecure
mysqld --install
net start mysql
出现以下说明成功
(4)用户设置
(1)1. cmd到bin目录下执行mysql -uroot (无需密码) , 即可进入,因为上边是用insecure 创建的
(2)修改密码:即可更改root 用户一开始空白的密码状态,现在就可以用新设置的 密码登录了。
(3):登录mysql 环境
(4)还想创建一些新的用户并授权
create user ‘test‘@‘localhost‘ identified by ‘你的密码‘;
grant all privileges on *.* to test@‘localhost‘;
运行这两句sql语句,再次用test的身份输入密码进入
在命令行输入:mysql -utest -p 回车 , 再输入刚刚设置的密码即可进入。
(5)退出mysql环境
如果要退出sql环境回到正常的cmd环境,输入exit回车即可。 再次进入mysql 执行第3条即可
(6)简单的执行语句
show databases; 可以看到默认的数据库
use mysql;
show tables;
select * from user;
(7)cmd环境配置:为了方便启动