关于我想把爬取的数据保存在数据库中,而虚拟机安装数据库出现种种报错。
前几天我用scrapy在网站上爬取了一些数据,本打算在centos虚拟机中安装个mysql数据库,可是种种报错,今天正好来了兴趣便开始网上搜各种资料以便于解决问题。
一开始我是用的centos的yum源下载mariadb,可是就是没办法打开。后来就打算在网上下载mysql用secureCRT的rz直接传到了虚拟机上,然后经过解压到虚拟机里,就这样错误开始出现。
一.mysql启动时报错,忘了报的啥错,其中有一个指向我的localhost.localdomain.err文件,进去发现配置文件写错了,浪费了很多时间,怪我没看它文件的报错信息。路径在自己安装的mysql路径里。
二.ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)报错
原因还是在我的mysql配置文件里(/etc/my.cnf)
我的socket选项没有到指定位置,可以用find / -name ‘*.sock’ 查找文件在哪。
不仅要在[mysqld]里指定socket路径,还要在[client]中指定,对于我来说,这样才没有报错。
三.ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)!]
在这里虽然我搜到的解决方案是有两个报错信息,但我只解决了密码不正确的问题就可以进入数据库了。我在它的配置文件(/etc/my.cnf)中加入了
[mysqld]
skip-grant-tables
免密登录。
四.报错中显示symbolic-links=0
我把配置文件里的symbolic-links=0注释掉了,问题也就解决了。
总结得出,关于mysql的报错问题主要由它的配置文件导致的,不是改错了就是没添加,所以报错了多去配置文件和报错日志里去看看。
之后开始修改密码,进入mysql的bin目录中输入**./mysqld --initialize-insecure**初始化mysql,然后进入MySQL中输入命令修改密码。
set password for 'root'@'localhost' =password('123456');
之后把配置文件里的skip-grant-tables注释掉就可以了,然后重启MySQL,
systemctl restart mysqld,好几种重启方法,看自己了。
之后就可以连接保存数据了。哈哈