文章大纲

centos系统安装mysql8的最详细教程

2023-06-29 18:23:18

今天给正式服务器安装mysql8,参考的这篇文章,非常详细:https://www.cnblogs.com/secretmrj/p/15600144.html


在此基础上,额外记录一下自己安装过程中遇到的小问题。


查看服务器系统版本

cat /etc/redhat-release
打印:CentOS Linux release 7.6.1810 (Core)



卸载rpm安装的软件

通过下面命令查看之前是否已安装mysql

rpm -qa | grep mysql


我执行后,结果如下:

qt-mysql-4.8.7-2.el7.x86_64
akonadi-mysql-1.9.2-4.el7.x86_64


现在我要安装mysql8,怎么卸载它们呢?执行下面命令即可:

rpm -e --nodeps qt-mysql-4.8.7-2.el7.x86_64(上面查出的安装包名称)

nodeps:ignore dependences,忽视(也叫不检查)依赖关系。

-e,erase,擦除之意。



mysqld_safe无法启动mysql

照着参考文章,执行如下命令启动mysql

mysqld_safe --defaults-file=/usr/local/etc/my.cnf &


结果没反应,MySQL服务也无法启动。


查看错误日志(my.cnf里有配置路径),记录如下:

230629 15:53:43 mysqld_safe Starting mysqld daemon with databases from /var/mysql8/data
230629 15:53:43 [Note] /usr/libexec/mysqld (mysqld 5.5.60-MariaDB) starting as process 4024 ...
230629 15:53:43 [ERROR] Can't find messagefile '/usr/local/mysql8/share/mysql/errmsg.sys'
230629 15:53:43 [ERROR] Aborting


可以看出,执行mysqld_safe命令时,实际还是执行mysqld脚本。

但由于我一开始没将旧的mysql删掉,所以默认找mysqld会找到/usr/libexec/mysqld目录里去。


后面还有一系列类似的问题,解决方法就是把原有安装的删掉。

不知道删哪些文件,那就用到哪个删哪个。


例如查询mysqld_safe路径:

which mysqld_safe
打印:/usr/bin/mysqld_safe

然后就把/usr/bin/mysqld_safe删掉。


如果/etc/profile有把安装的mysql8 bin目录配置进去,此时再查询,就会查到mysql8下的mysqld_safe。


从这个角度可以得知:

 /usr/bin目录优先级高于/etc/profile里的配置,即只要从/usr/bin目录找到了脚本,就默认先执行/usr/bin目录下得脚本了。

如果我们想把脚本放到/usr/bin里去,那就给脚本创建一个软链也是ok的。


本文是翟码农个人博客里Linux分类下有关centos系统安装mysql8的原创文章,转载请注明出处:http://www.zhai14.com/blog/the-most-detailed-tutorial-of-installing-mysql8-in-centos-system.html



创建软链

ln -s [dir1] [dir2],dir1是真实的文件夹,dir2是dir1的软链接

一直没用心记,所以每次敲命令时,到底真实目录是放在前面还是放在后面,就犯糊涂了。


今天稍微想了一下,总算记住了。

记忆口诀:我们都爱真钱,不爱假钱,所以真实目录在钱(前,即dir1)

所以,我们就大概可以如下给mysqld_safe创建软链了:

ln -s /usr/local/mysql8/bin/mysqld_safe  /usr/bin/mysqld_safe




我要评论
评论列表