安装 MySQL 8.4
下载并解压 MySQL 8.4 安装包到 /opt 目录,创建符号链接以便后续管理:
bash
useradd -r -s /bin/false mysql
cd /opt
tar xvf /tmp/mysql-8.4.9-linux-glibc2.28-x86_64.tar.xz
ln -s /opt/mysql-8.4.9-linux-glibc2.28-x86_64 /opt/mysql
配置环境变量,确保 MySQL 命令可执行:
bash
vi ~/.bash_profile
export PATH=/opt/mysql/bin:$PATH
source ~/.bash_profile
创建安全目录结构
为数据、日志和文件导入导出操作创建专用目录,并设置正确的权限:
bash
cd /data
mkdir -p /data/mysql_3306
chown mysql:mysql mysql_3306
cd mysql_3306
mkdir mysql-files data logs
chown mysql:mysql mysql-files data logs
chmod 750 mysql-files data logs
配置 MySQL 服务器选项
编辑配置文件 /data/mysql_3306/my.cnf,包含以下基本配置:
ini
[mysqld]
server-id =71013306
basedir =/opt/mysql
datadir =/data/mysql_3306/data
socket =/data/mysql_3306/logs/mysql.sock
pid-file =/data/mysql_3306/logs/mysql.pid
log-error =/data/mysql_3306/logs/mysql_error.log
user =mysql
port =3306
secure_file_priv=/data/mysql_3306/mysql-files
local_infile=OFF
初始化数据目录并启动服务
使用 mysqld 初始化数据目录,注意记录生成的临时密码:
bash
mysqld --defaults-file=/data/mysql_3306/my.cnf --initialize --user=mysql
grep "temporary password" /data/mysql_3306/logs/mysql_error.log
启动 MySQL 服务并连接到服务器:
bash
mysqld --defaults-file=/data/mysql_3306/my.cnf --user=mysql &
mysql -S /data/mysql_3306/logs/mysql.sock -uroot -p
修改 root 用户密码:
sql
ALTER USER 'root'@'localhost' IDENTIFIED BY 'mysql';
配置 systemd 服务管理
创建 systemd 服务文件 /usr/lib/systemd/system/mysqld.service:
cd /usr/lib/systemd/system
touch mysqld.service
chmod 644 mysqld.service
ini
[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=notify
TimeoutSec=0
ExecStart=/opt/mysql/bin/mysqld --defaults-file=/data/mysql_3306/my.cnf $MYSQLD_OPTS
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE = 10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
启用并启动 MySQL 服务:
bash
systemctl enable mysqld.service
systemctl start mysqld
systemctl status mysqld