前言
放了十天假,电脑扔到寝室里一碰没碰,回来开工发现数据库启动不了了???
尝试了许多办法最终宣告无果(还好我数据库没什么有用的信息,反正是开发用的本地数据库,重要用户信息都放在服务器里面了)
于是我又又又又踏上了重装mysql的旅程,装了无数遍了,每次装都还要谷歌,sb一样,这次干脆记下来,以防以后再用
之前装的mysql8在开发过程中遇到了各种各样的sb兼容性问题,大概是数据库版本太新,框架太老不匹配了,反正我是懒的修。
没有什么是重装解决不了的,如果不行,就重装系统
总之这次先卸载了电脑里无数次安装失败或者成功的各种版本的mysql。
卸载步骤:
任务管理器 ---> 服务 ---->mysql---->停止运行
控制面板 ----> 写在程序 ---->mysql ----->卸载
ok
进入mysql官网:https://dev.mysql.com/downloads/mysql/5.7.html
请不要下载安装包
下载之后解压到你想放的位置
我放在了F:\database\mysql-5.7.27-winx64
解压成功之后我们在F:\database\mysql-5.7.27-winx64目录下创建一个记事本
修改名字为my.ini
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=F:\database\mysql-5.7.27-winx64
# 设置mysql数据库的数据的存放目录
datadir=F:\database\mysql-5.7.27-winx64\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
其中
basedir=F:\database\mysql-5.7.27-winx64
datadir=F:\database\mysql-5.7.27-winx64\data
这两个字段根据你安装的位置进行变通,其他的完全复制即可
配置完之后保存
以管理员身份启动cmd 以防万一
cd 到F:\database\mysql-5.7.27-winx64\bin 中
输入mysqld install
问题一
cmd返回
The service already exists! The current server installed:'一个文件目录'
如果你之前装过mysql 并且没有把他删干净,这时候你可以进入上面提示的文件目录,把这个目录删除,再次mysqld install 发现仍然会报出同样的错误
以管理员身份运行cmd
输入sc query mysql
发现确实安装过
再输入命令
sc delete mysql 删除该mysql
回到F:\database\mysql-5.7.27-winx64\bin中
输入mysqld install
返回 Service successfully installed
mysqld安装成功
这时候你会迫不及待得启动mysql了
net start mysql
于是你遇到了
问题二
这个问题的来源原因大概是
my.ini配置中的这个字段
datadir=F:\database\mysql-5.7.27-winx64\data
我们在bin中敲入 mysqld -console
等待几秒会发现
会发现
console的报错是,找不到这玩意F:\database\mysql-5.7.27-winx64\data
这时候我们进入目录发现,确实没有data文件夹,那好,既然没有我们手动建立一个data文件夹吧
那么恭喜你
我们进入了
问题三
建立之后,我们再次net start mysql 还是发生了同样的问题
而且这次 mysqld -console也不会返回任何内容了,因为确实已经有了data文件夹了
然鹅
mysql的data文件夹是你瞎jb建一个就能用的吗???
下面删除data文件夹
然后回到F:\database\mysql-5.7.27-winx64\bin
执行
mysqld --initialize-insecure
这个命令会在mysql根目录F:\database\mysql-5.7.27-winx64\下建立data文件夹
再次执行
net start mysql
应该就成功了
输入mysql -uroot -p 回车
密码不用输入,直接回车(刚装好的mysql默认没有密码)
输入use mysql
进入mysql数据库,准备修改密码
输入
update user set authentication_string = password('你的密码'), password_expired = 'N', password_last_changed = now() where user = 'root';
密码更改后 要用
FLUSH PRIVILEGES;
命令才能完成修改 不然下次还是没有修改
mysql> quit
mysqld restart
mysql -u root -p
Enter password: <输入你设置的密码>
mysql>
重新登录一次,输入修改后的密码,成功登录,设置完成
每次进入cmd 都要先F:
再cd F:\database\mysql-5.7.27-winx64\bin
是不是很麻烦?
想不想把这个路径添加到系统环境变量中,这样我不论在个目录中,只要输入mysql 就可以默认进入F:\database\mysql-5.7.27-winx64\bin中呢?
很简单
右键我的电脑--->属性 ----> 高级系统设置 ----> 高级 -->环境变量
双击Path,新建一个路径,输入F:\database\mysql-5.7.27-winx64\bin
效果如图,确定,添加完成
这样在命令行任何文件目录下都可以通过mysql命令直接进入了!
这样,一个纯净的数据库就安装并且配置好了