centos7上mysql5.7的rpm安装

首先检查系统是否已有mysql:

rpm -qa|grep -i mysql

如果有则删除之:

rpm -ev package_name(package_name为要删除的包名)


另外由于现在centos默认使用mariadb,而mariadb和mysql的安装会存在一些冲突,所以同样要先检查mariadb是否存在,并卸载它


然后就是rpm包的下载和安装,下载mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar,然后安装:

[root@localhost ~]# tar -zxvf mysql-5.7.18-1.el6.x86_64.rpm-bundle.tar
[root@localhost ~]#rpm -ivh mysql-community-common-5.7.18-1.el6.x86_64.rpm
[root@localhost ~]#rpm -ivh mysql-community-libs-5.7.18-1.el6.x86_64.rpm
[root@localhost ~]#rpm -ivh mysql-community-libs-compat-5.7.18-1.el6.x86_64.rpm
[root@localhost ~]#rpm -ivh mysql-community-client-5.7.18-1.el6.x86_64.rpm
[root@localhost ~]#rpm -ivh mysql-community-server-5.7.18-1.el6.x86_64.rpm
[root@localhost ~]#rpm -ivh mysql-community-devel-5.7.18-1.el6.x86_64.rpm

上面的包存在一定依赖关系,就按这里的顺序安装就好了


然后启动mysql

systemctl start mysqld.service

如果失败了,查看下日志,我遇到一个情况是数据目录,就是datadir里面有数据,估计是mariadb留下来的,导致数据库无法初始化。把datadir里面所有内容清空,然后再启动就可以了。datadir的位置可以查看mysql的配置文件,一般在/etc/my.cnf里面可以看到。


然后进行登录:

mysql -uroot

发现提示内容意味着密码错误。按理说以往默认密码都是空的,5.7不知道是不是改了还是怎么样。要先跳过密码验证,跳过前先关闭mysql:

systemctl stop mysqld.service

/usr/bin/mysqld_safe --skip-grant-tables &


然后就能进入mysql了,之后就是改密码,按照网上一般答案:

UPDATE user SET password=PASSWORD('123') WHERE user='root';

发现报错,说没有password这个字段。因为现在user表里面密码字段是authentication_string,因此命令要改成

UPDATE user SET authentication_string=PASSWORD('123') WHERE user='root';

FLUSH PRIVILEGES;


之后退出mysql,并kill掉原来的那个跳过验证的进程,然后重启mysql

再重试登录

mysql -u root -p

就可以了



发布了39 篇原创文章 · 获赞 5 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/sadoshi/article/details/74989669