0%

centos安装mysql

在centOS服务器中使用yum安装mysql的过程踩坑。

yum与rpm

yum(Yellow dog Updater Modified),是一个在Fedora和RedHat以及CentOS中的shell前端软件包管理器。基于RPM包管理,能从指定的服务器自动下载RPM包并且安装,可以自动处理依赖关系,并且可以一次安装所有依赖的软件包,无需繁琐的一次次下载。

RPM(RedHat Package Manager),是一个软件包管理工具,RPM管理着系统已安装的所有RPM程序组件的资料。也可以使用RPM来写在相关的应用程序。

当我们执行安装mysql的命令:

1
$ yum install mysql-server

系统会报告说没有可用的mysql-server软件包。

mysql yum源

既然没有,那么我们就添加下mysql-server的源。

可以去http://repo.mysql.com/查看都有哪些源,然后选择我们需要的下载下来,我这里选择的是mysql-community-release-el7-5.noarch.rpm

先将mysql的rpm格式下载到服务器:

1
$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

然后添加源:

1
$ rpm -ivh mysql-community-release-el7-5.noarch.rpm

然后查看下是否安装成功:

1
$ yum repolist

我们可以看到里面有MySQL 5.6 Community ServerMySQL Connectors CommunityMySQL Tools Community,说明源安装成功了。

安装mysql

我们现在只需要用yum安装即可:

1
$ yum install mysql-server

安装后没有密码,可以直接登录:

1
$ mysql -u root

但是发现报错了:

1
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

原因是/var/lib/mysql的访问权限的问题,需要将mysql的拥有者改为当前用户:

1
$ chown -R root:root /var/lib/mysql

然后需要重新启动mysql:

1
$ service mysqld restart

现在就可以登录mysql了:

1
$ mysql -u root

现在mysql是无密码的,我们需要设定一个密码。首先进入数据库mysql,然后修改user表的root记录,修改密码:

1
2
mysql> use mysql
mysql> update user set password=password('123456') where user = 'root';

密码设置好后,还需要重启mysql服务,才会应用这个密码。

重启之后,再次登录:

1
$ mysql -u root -p123456

OK,现在没有密码是进不去的。

数据库版本

今天在鼓捣服务器的时候,遇到一个错误:

1
error: function `ngram` is not defined

这就有点奇怪了,我在我mac电脑上没有出现这个问题。再查下这个问题,发现:

自MySQL5.7.6版起,MySQL将ngram全文解析器作为内置的服务器插件,这意味着当MySQL数据库服务器启动时,会自动加载该插件。MySQL支持用于InnoDB和MyISAM存储引擎的ngram全文解析器。

再查看下服务器里面安装的MySQL的版本:

1
2
$ mysql -V
mysql Ver 14.14 Distrib 5.6.51, for Linux (x86_64) using EditLine wrapper

得,岔劈了,服务器安装的是MySQL5.6.51。

那我们装个高版本的吧。

卸载旧的mysql

停止mysql:

1
$ service mysqld stop

卸载mysql:

1
$ yum remove mysql-server

查找mysql并删除原本的残留:

1
$ rpm -qa | grep mysql

将找到的挨个删除:yum remove 包名

查找并删除mariaDB:

1
$ rpm -qa | grep mariadb

如果有就删除:rpm -e --nodeps mariadb-XXX

查找并删除mysql配置文件:

1
$ find / -name mysql

删除找到的项次:rm -rf /usr/lib/mysql

安装高版本的源

我这里找到的是:http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

下载源:

1
$ wget http://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm

安装这个源:

1
$ yum -y install mysql80-community-release-el7-3.noarch.rpm

更新yum缓存:

1
2
$ yum clean all
$ yum makecache

安装mysql

1
$ yum -y install mysql-community-server

然后等待下载安装就行了,一切交给yum。

等待一会儿后就安装成功了,遇到/var/lib/mysql/mysql.sock的问题还是前面的解决方法,授权然后重启mysql。

然后我们看下mysql的版本:

1
2
$ mysql -V
mysql Ver 8.0.26 for Linux on x86_64 (MySQL Community Server - GPL)

但是这个高版本的安装好后是有密码的,密码我们不知道,😢

从日志中找到初始密码:

1
2
$ grep "password" /var/log/mysqld.log
2021-10-12T12:35:20.731357Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: +6wXXXX%

可以得到初始密码。

进入mysql后修改密码,注意这里mysql8里面的密码等级需要比较高一点,必须同时具备大小写字母、数组、特殊字符,并且长度不能小于八位:

1
mysql> alter user root@localhost identified by 'FDSAFFEFAdsfadfs3333!';

记录!

码字辛苦,打赏个咖啡☕️可好?💘