OpenEuler安装mysql二进制版本

一、实验说明

1.1 实验背景

由于centos停止维护,计划使用OpenEuler进行替代。虽然两者非常相似,但是OpenEuler在包括内核版本、预装包等方面仍有不少差异,尤其是原本redhat系的rpm包很多都已无法使用。
相对于原本的rpm包安装mariadb方案,现在使用mysql社区版的二进制版本。虽然安装复杂一些,也有一些优势,例如版本更换平滑、无需依赖包。
本文内容由官网文档:https://dev.mysql.com/doc/refman/8.0/en/整理。

1.2 实验环境

操作系统:OpenEuler-22.03
mysql版本:Linux - Generic,8.0.43,glibc2.28-x86_64
tips: 事实上OpenEuler-22.03的glibc版本为2.34,与二进制包并不完全相同,不过不影响使用

二、安装

2.1 下载二进制文件

在官网下载mysql社区版(https://dev.mysql.com/downloads/mysql/)二进制版本,文件为mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz,下载完成后移动至/usr/local目录下

2.2 创建用户及组

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

2.3 解压文件

cd /usr/local
tar xf /usr/local/mysql-8.0.43-linux-glibc2.28-x86_64.tar.xz
ln -s /usr/local/mysql-8.0.43-linux-glibc2.28-x86_64 mysql
cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

2.4 设置环境变量

tee /etc/profile.d/mysql.sh <<EOL
export MYSQL_HOME=/usr/local/mysql
export PATH=\$PATH:\$MYSQL_HOME/bin
EOL

使环境变量立即生效

source /etc/profile

设置好环境变量后,即可直接使用mysql的一系列命令

2.5 创建配置文件

tee /etc/my.cnf <<EOL
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF
max_connections = 512
character-set-server = utf8mb4
EOL
chown root:root /etc/my.cnf  
chmod 644 /etc/my.cnf

2.6 初始化数据库

cd /usr/local/mysql
mkdir data
chmod 755 data
chown -R mysql:mysql /usr/local/mysql/
mysqld --defaults-file=/etc/my.cnf --initialize

初始化后,查看/usr/local/mysql/data/localhost.localdomain.err文件,其中会生成临时的初始root密码(temporary password)

2.7 配置服务

tee /usr/lib/systemd/system/mysqld.service <<EOL
[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=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS 
EnvironmentFile=-/etc/sysconfig/mysql
LimitNOFILE=10000
LimitNPROC=10000
Restart=on-failure
RestartPreventExitStatus=1
Environment=MYSQLD_PARENT_PID=1
PrivateTmp=false
EOL

配置为服务后,即可使用systemctl控制mysql的启停

chmod 644 mysqld.service
systemctl daemon-reload
systemctl start mysqld
systemctl enable mysqld

如一切正常,此时使用ss -nlpt命令可以看到tcp 3306端口为监听状态

2.8 重置密码

使用初始root密码连接数据库mysql -uroot -p'初始root密码'
此时会发现,无法对数据库进行操作,必须修改root密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES;

至此,即可正常操作mysql数据库了

<think>我们将在openEuler 24.03操作系统上使用二进制方式安装MySQL 8.4.0。请注意,由于MySQL 8.4.0是最新版本,官方可能只提供源码或特定平台的二进制包,但通常提供通用Linux二进制包(例如tar包)。我们将使用通用Linux二进制包进行安装。 ### 步骤概览 1. **准备工作**:更新系统,安装依赖,创建用户和组,创建目录结构。 2. **下载MySQL二进制包**:从MySQL官方网站下载。 3. **解压并安装**:解压到指定目录,设置权限。 4. **初始化MySQL**:使用`mysqld`初始化数据目录。 5. **配置MySQL**:配置文件`my.cnf`的设置。 6. **启动MySQL**:配置systemd服务并启动。 7. **设置环境变量**:将MySQL的bin目录添加到PATH。 8. **安全设置**:运行`mysql_secure_installation`。 ### 详细步骤 #### 1. 准备工作 首先,更新系统并安装必要的依赖: ```bash sudo dnf update -y sudo dnf install -y libaio numactl openssl ncurses-compat-libs ``` 创建MySQL用户和组: ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql ``` 创建MySQL数据目录和日志目录(按需创建,这里以常见目录为例): ```bash sudo mkdir -p /usr/local/mysql sudo mkdir -p /var/lib/mysql sudo mkdir -p /var/log/mysql sudo chown -R mysql:mysql /usr/local/mysql /var/lib/mysql /var/log/mysql ``` #### 2. 下载MySQL二进制包 访问[MySQL Community Server下载页面](https://dev.mysql.com/downloads/mysql/),选择**MySQL Community Server**,然后选择操作系统为**Linux - Generic**,下载对应的**Compressed TAR Archive**(例如:`mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz`)。 使用`wget`下载(请替换为实际下载链接): ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz ``` #### 3. 解压并安装 将下载的包解压到`/usr/local/mysql`(注意:如果目录已存在且为空,则直接解压;否则先清空或创建): ```bash sudo tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/mysql --strip-components=1 ``` 设置目录权限: ```bash cd /usr/local/mysql sudo chown -R mysql:mysql . sudo chmod -R 755 . ``` #### 4. 初始化MySQL 使用`mysqld`初始化数据目录(注意:记录生成的临时密码): ```bash sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql ``` 初始化完成后,在日志中会显示临时密码(通常在`/var/log/mysql/error.log`中,初始化时也会在终端显示)。例如: ``` [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 临时密码 ``` #### 5. 配置MySQL 创建配置文件`/etc/my.cnf`(如果已有,请备份后修改): ```ini [mysqld] basedir=/usr/local/mysql datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysql/mysql.log pid-file=/var/run/mysql/mysql.pid [client] socket=/var/lib/mysql/mysql.sock ``` 确保配置文件中指定的目录存在,且权限正确: ```bash sudo mkdir -p /var/run/mysql sudo chown -R mysql:mysql /var/run/mysql ``` #### 6. 启动MySQL 创建systemd服务文件`/etc/systemd/system/mysql.service`: ```ini [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql Type=simple ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf Restart=on-failure RestartSec=5s PrivateTmp=true [Install] WantedBy=multi-user.target ``` 重新加载systemd并启动MySQL: ```bash sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql ``` #### 7. 设置环境变量 编辑`/etc/profile`,在末尾添加: ```bash export PATH=$PATH:/usr/local/mysql/bin ``` 然后使配置生效: ```bash source /etc/profile ``` #### 8. 安全设置 使用临时密码登录并修改密码: ```bash mysql -u root -p ``` 输入临时密码后,修改密码: ```sql ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; ``` 然后运行安全脚本(可选): ```bash mysql_secure_installation ``` ### 验证安装 ```bash mysqladmin -u root -p version ``` ### 注意事项 - 如果遇到依赖问题,请根据错误提示安装相应依赖。 - 如果SELinux开启,可能需要调整策略或关闭SELinux(生产环境需谨慎)。 ### 相关问题 1. 如何解决MySQL初始化过程中出现的常见错误? 2. 如何配置MySQL的远程访问? 3. 如何对MySQL进行性能调优? 4. 如何升级MySQL到新版本?</think>### 在 openEuler 24.03 上二进制安装 MySQL 8.4.0 指南 #### 步骤 1:准备工作 1. **更新系统与安装依赖** ```bash sudo dnf update -y sudo dnf install -y libaio numactl openssl ncurses-compat-libs wget ``` 2. **创建 MySQL 用户和目录** ```bash sudo groupadd mysql sudo useradd -r -g mysql -s /bin/false mysql sudo mkdir -p /usr/local/mysql sudo mkdir -p /var/lib/mysql sudo mkdir -p /var/log/mysql sudo chown -R mysql:mysql /usr/local/mysql /var/lib/mysql /var/log/mysql ``` #### 步骤 2:下载 MySQL 8.4.0 二进制包 ```bash wget https://dev.mysql.com/get/Downloads/MySQL-8.4/mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz ``` #### 步骤 3:解压安装 ```bash sudo tar -xvf mysql-8.4.0-linux-glibc2.28-x86_64.tar.xz -C /usr/local/mysql --strip-components=1 cd /usr/local/mysql sudo chown -R mysql:mysql . sudo chmod -R 755 . ``` #### 步骤 4:初始化数据库 ```bash sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/var/lib/mysql ``` **注意**:记录输出的临时 root 密码(格式:`A temporary password is generated for root@localhost: 临时密码`) #### 步骤 5:配置 MySQL 1. **创建配置文件** `/etc/my.cnf`: ```ini [mysqld] basedir=/usr/local/mysql datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysql/mysql.log pid-file=/var/run/mysql/mysql.pid [client] socket=/var/lib/mysql/mysql.sock ``` 2. **创建 systemd 服务** `/etc/systemd/system/mysql.service`: ```ini [Unit] Description=MySQL Server After=network.target [Service] User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf Restart=on-failure RestartSec=5s [Install] WantedBy=multi-user.target ``` #### 步骤 6:启动 MySQL ```bash sudo systemctl daemon-reload sudo systemctl start mysql sudo systemctl enable mysql ``` #### 步骤 7:设置环境变量与安全配置 1. **添加 PATH**(编辑 `~/.bashrc`): ```bash export PATH=$PATH:/usr/local/mysql/bin source ~/.bashrc ``` 2. **重置 root 密码**: ```bash mysql -u root -p # 输入临时密码 ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; ``` 3. **运行安全脚本**: ```bash mysql_secure_installation ``` #### 验证安装 ```bash mysqladmin -u root -p version # 输出应包含:mysqladmin Ver 8.4.0 for Linux on x86_64 ``` ### 常见问题解决 1. **依赖缺失错误**: ```bash sudo dnf install -y libaio numactl openssl ncurses-compat-libs ``` 2. **目录权限问题**: ```bash sudo chown -R mysql:mysql /var/lib/mysql /var/log/mysql ``` 3. **SELinux 干扰**: ```bash sudo setenforce 0 # 临时关闭 sudo vim /etc/selinux/config # 永久设置 SELINUX=permissive ``` ### 相关问题 1. 如何配置 MySQL 8.4 的远程访问? 2. MySQL 8.4 与旧版本的主要兼容性差异有哪些? 3. 如何在 openEuler 上实现 MySQL 主从复制? 4. MySQL 8.4 的性能优化参数如何配置? 5. 二进制安装与源码编译安装的性能差异如何? > **引用说明**:操作步骤参考了 MySQL 官方二进制安装文档和 openEuler 系统管理实践[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值