在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 Server
、MySQL Connectors Community
、MySQL 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 | use mysql |
密码设置好后,还需要重启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 | mysql -V |
得,岔劈了,服务器安装的是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 | yum clean all |
安装mysql
1 | yum -y install mysql-community-server |
然后等待下载安装就行了,一切交给yum。
等待一会儿后就安装成功了,遇到/var/lib/mysql/mysql.sock
的问题还是前面的解决方法,授权然后重启mysql。
然后我们看下mysql的版本:
1 | mysql -V |
但是这个高版本的安装好后是有密码的,密码我们不知道,😢
从日志中找到初始密码:
1 | grep "password" /var/log/mysqld.log |
可以得到初始密码。
进入mysql后修改密码,注意这里mysql8里面的密码等级需要比较高一点,必须同时具备大小写字母、数组、特殊字符,并且长度不能小于八位:
1 | alter user root@localhost identified by 'FDSAFFEFAdsfadfs3333!'; |
记录!