记一次mysql安装过程

1.背景

最近得到一份文档,上面写了用binary文件在centos上安装mysql的全过程,按照文档的步骤安装,最后发现mysql总是启动不起来,原因也找不到。

把解压文件
tar -zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
重命名方便操作
mv mysql-5.7.32-linux-glibc2.12-x86_64 mysql-5.7.32
安装数据库
1)添加系统mysql组和mysql用户
groupadd mysql
useradd -r -g mysql mysql
#useradd -r参数表示mysql用户是系统用户,不可用于登录系统

2)创建data目录
cd mysql-5.7.32
mkdir data

3)将/usr/local/mysql-5.7.32 的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql-5.7.32


3)在/usr/local/mysql-5.7.32/support-files目录下创建touch my_default.cnf
输入以下内容:
----------------------------------------------------------------------------------
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
 
basedir = /usr/local/mysql-5.7.32
datadir = /usr/local/mysql-5.7.32/data
port = 3306
socket = /tmp/mysql.sock
character-set-server=utf8
max_allowed_packet = 4M(默认1M或4M)
log-error = /usr/local/mysql-5.7.32/data/mysqld.log
pid-file = /usr/local/mysql-5.7.32/data/mysqld.pid
---------------------------------------------------------------------------

4)返回上级拷贝覆盖原配置文件,如果提示是否覆盖,y
cp /usr/local/mysql-5.7.32/support-files/my_default.cnf /etc/my.cnf

5)初始化 mysqld
cd /usr/local/mysql-5.7.31

./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7.32/ --datadir=/usr/local/mysql-5.7.32/data/

6)初始化完成之后,查看日志,初始密码
cat /usr/local/mysql-5.7.32/data/mysqld.log

把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql (文件复制到这里,可以通过service mysql start来启动了)

7)启动mysql服务
service mysql start
登录mysql,密码为初始密码
cd /usr/local/mysql-5.7.32
./bin/mysql -u root -p
# 输入上面的临时密码 

8)修改密码
mysql> set password=password('root');
mysql> grant all privileges on *.* to root@'%' identified by 'root';(此步骤最好不要使用)
mysql> flush privileges;

安装到最后用systemctl start mysqld时总是报错,报错集中在两部分,一是报service unit not found,二是报update pid file错误。从这种错误无法判断是哪里出了问题,并且错误日志文件无法找到(提示的错误文件在相应的目录下无法找到)。

部署使用的系统版本是centos7.8,mysql版本是8.0.23。初步怀疑可能是以下几个点:
(1)mysql版本不对,部署文档使用的是mysql5.7,8.0的版本二进制文件部署方式可能不一样;
(2)权限不足,为mysql服务赋予的权限不足导致mysql启动不起来;
(3)操作步骤问题。
基于以上的问题,重新装了一个虚拟机并装了centos7.8,使用mysql8.x的二进制文件按上述文档又试了一遍,这次给予mysql root权限,发现问题仍然存在,所以怀疑是部署文档存在错误。其实部署文档和官方的部署手册差别并不是很大,所以这一点又值得怀疑。

2.解决方法

既然二进制文件的方式行不通,那么就考虑其他安装方式。最后通过yum repository的方式安装成功。但这种方法在服务器上安装时又遇到了问题,因为这种方式需要在线下载安装包,而服务器下载的太慢了。最后采用的方式是下载rpm包直接安装,省去在线下载的过程。这种方法终于可以行得通了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    迷月闪星情阅读 10,616评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,279评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 126,116评论 2 7