目录

1.从官网下载二进制包

2.创建mysql用户及用户组

3.解压MySQL包,创建软链接

4.编辑配置⽂件

5.创建并授权mysql数据目录

6.初始化实例

7.创建 systemd 服务配置⽂件

8.使⽤ systemd 管理服务

9.如何判断实例是否启动成功

10.定位实例启动失败的原因


1.从官网下载二进制包

打开https://dev.mysql.com/downloads/mysql/,选择glibc版本需要根据操作系统情况选择

glibc 和 libc 都是 Linux 下的 C 函数库。libc 是 Linux 下的 ANSI C 函数库;glibc 是 Linux 下的 GNU C 函数库。版本向下兼容

#使用ldd命令可以查看glibc版本,ldd命令用于打印可执行文件依赖的共享库。通过检查输出的第一行,你可以找到glibc的版本信息。
ldd --version
wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.7-linux-glibc2.28-x86_64.tar.xz

2.创建mysql用户及用户组

groupadd mysql
useradd -r -g mysql -s /sbin/nologin mysql

3.解压MySQL包,创建软链接

tar -Jxf  mysql-8.4.7-linux-glibc2.28-x86_64.tar.xz
ln -s /opt/mysql/database/mysql-8.4.7-linux-glibc2.28-x86_64/ /usr/local/mysql

4.编辑配置⽂件

vim /etc/my.cnf

注意刺配置文件为测试使用的配置文件,生产环境的还需要加其他的配置项

[client]

socket  = /data/mysql/3306/data/mysql.sock

[mysqld]

basedir  = /usr/local/mysql

datadir  = /data/mysql/3306/data

user   = mysql

port   = 3306

socket  = /data/mysql/3306/data/mysql.sock

log_error = /data/mysql/3306/data/mysqld.err

log_timestamps = system

log-bin   = mysql-bin

server-id = 1

5.创建并授权mysql数据目录

mkdir -p /data/mysql/3306/data
chown -R mysql:mysql /data/mysql/3306/  /usr/local/mysql

6.初始化实例

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

7.创建 systemd 服务配置⽂件

# vim /usr/lib/systemd/system/mysqld.service

[Unit]

Description=MySQL Server

Documentation=man:mysqld(8)

Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html After=network.target

After=syslog.target

[Install]

WantedBy=multi-user.target

[Service]

User=mysql

Group=mysql

Type=forking

PIDFile=/data/mysql/3306/data/mysqld.pid

# Disable service start and stop timeout logic of systemd for mysqld service.

TimeoutSec=0

# Start main service

ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --pid- file=/data/mysql/3306/data/mysqld.pid --daemonize $MYSQLD_OPTS

# Use this to switch malloc implementation

EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit

LimitNOFILE = 65535

Restart=on-failure
RestartPreventExitStatus=1

PrivateTmp=false

8.使⽤ systemd 管理服务

systemctl daemon-reload
systemctl start mysqld
systemctl stop mysqld
systemctl status mysqld
systemctl enable mysqld

9.如何判断实例是否启动成功

1. 查看错误⽇志。

2. 查看 mysqld 进程是否启动

ps -ef | grep mysql
#创建软链接,使用mysql命令
ln -s /usr/local/mysql/bin/mysql  /usr/bin/mysql
mysql -u root -p

10.定位实例启动失败的原因

1. 查看错误⽇志。

2. 通过 mysqld 启动。

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

3. 只指定⼏个必要的参数启动。

/usr/local/mysql/bin/mysqld --no-defaults --basedir=/usr/local/mysql -
datadir=/data/mysql/3306/data/ --user=mysql

如果还是不⾏,可通过 strace 查看 MySQL 启动过程中的系统调⽤情况。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐