首页 > 文章列表 > Centos7.9安装MySQL8.0.32的方法是什么

Centos7.9安装MySQL8.0.32的方法是什么

mysql centos
158 2023-05-16

Centos7.9安装MySQL8.0.32的方法是什么

第一步、下载压缩包

下载社区版的 MySQL,根据需求下载对应版本,其中有最小安装版本。

第二步,解压压缩包,并复制到安装目录

进入到压缩包所在的文件夹,解压分为两次,第一次解压 xz 文件,第二次解压 tar 文件。

xz -dv mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz

tar -xvf mysql-8.0.32-linux-glibc2.12-x86_64.tar

复制解压后的文件到到要安装的目录,我要把 MySQL 安装到/usr/local/mysql,所以,运行以下命令,把解压后的文件复制过去

sudo cp -r mysql-8.0.32-linux-glibc2.12-x86_64/* /usr/local/mysql

这里需要修改以下安装目录的权限,由于我们使用 mysql 用户运行数据库,所以,要把安装目录的拥有者改为 mysql,如果系统没有,需要添加 mysql 用户及分组,我们只使用 mysql 运行程序,所以指定了 mysql 禁止登录,增加安全性

sudo groupadd mysql

sudo useradd mysql -s /usr/sbin/nologin -g mysql

修改安装目录的拥有者为 mysql

chown -R mysql:mysql /usr/local/mysql/

第三步、编辑配置文件

编辑配置文件,我们把配置文件放到 /etc/my.cnf

配置如下:

[client]

port=3306

# 端口

# mysqlx_port=33060

socket=/var/lib/mysql/mysql.sock

# mysqlx_socket=/var/lib/mysqlx.sock



[mysqld]

# skip-grant-tables

# mysql安装目录

basedir=/usr/local/mysql/

# mysql数据库目录

datadir=/var/lib/mysql/data/

port=3306

innodb_file_per_table=1

character-set-server=UTF8MB4

mysqlx_port=33060

socket = /var/lib/mysql/mysql.sock

# mysqlx_socket=/var/lib/mysql/mysqlx.sock



[mysqld_safe]

# 错误日志

log-error=/var/log/mysql/error.log

# pid文件

pid-file=/usr/local/mysql/mysqld.pid

tmpdir=/var/lib/mysql/mysql

第四步、确定一些相关的目录

编辑文件support-files/mysql.server,修改里面的相关目录

安装目录 basedir=/usr/local/mysql

配置目录 /etc/my.cnf

数据库文件目录 datadir=/var/lib/mysql/data/

pid 文件pid-file=/usr/local/mysql/mysqld.pid

第五步、初始化数据库

初始化数据库,注意,初始化成功后,终端会显示 root 账号密码,一定要保存下来

sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql --initialize

第六步、启动数据库,连接并修改 root 密码

sudo ./bin/mysqld --defaults-file=/etc/my.cnf --user=mysql

连接数据库,修改 root 密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '你的密码';

第六步、守护 MySQL 进程

创建守护程序,保证在服务器重启后能够自动启动,运行

sudo vim /etc/systemd/system/mysql.service

内容如下,其中 User 和 Group 为 mysql

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

After=network.target

After=syslog.target



[Install]

WantedBy=multi-user.target



[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf

LimitNOFILE = 5000

#Restart=on-failure

#RestartPreventExitStatus=1

#PrivateTmp=false
# 使能

sudo systemctl enable mysql.service

# 启动

sudo systemctl start mysql.service

# 查看状态

sudo systemctl status mysql.service

第七步、验证

重启服务器验证 mysql 进程是否启动