华为云服务器Euleros系统安装mysql,二进制包方式安装

1、检查系统版本:确保是华为云EulerOS

命令:cat /etc/os-release

 

2、确认系统架构:通常是x86_6464位系统)

命令:uname -m

3MySQL运行需要libaio库,请提前安装:

命令:sudo dnf install libaio numactl openssl -y ,我的提示已经安装了,没有安装的界面会不同。

4、下载安装包

访问华为镜像mysql

https://mirrors.huaweicloud.com/mysql/

上传到服务器根目录

你也可以直接下载到服务器,在命令行中输入以下命令下载:

wget https://mirrors.huaweicloud.com/mysql/Downloads/MySQL-8.0/mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

解压到根目录下

命令:sudo tar -xJvf mysql-8.0.25-linux-glibc2.12-x86_64.tar.xz

5、解压安装

将解压后的 MySQL 目录移动到 /usr/local/mysql

sudo mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql

建立用户和组

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

创建数据目录并给与权限

sudo mkdir -p /data/mysql
sudo chown -R mysql:mysql /data/mysql

初始化数据

cd /usr/local/mysql
sudo bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
如果成功,会输出默认的 `root` 用户密码,请保存该密码。
F!zX2feG-ssr

6、建立配置文件

查看并创建my.cnf

ls /etc/my.cnf

如果不存在创建文件并编辑

sudo touch /etc/my.cnf

sudo vi /etc/my.cnf

写入以下内容,里面的安装目录就是你解压移动后的目录。

 [mysql]
#
默认字符集
default-character-set = utf8mb4

[mysqld]
# MySQL
安装目录
basedir = /usr/local/mysql
#
数据目录
datadir = /data/mysql
#
数据库引擎,这里设置为 InnoDBMySQL 8 默认引擎)
default_storage_engine = InnoDB
#
最大连接数
max_connections = 1000
#
字符集,避免乱码
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
#
默认端口
port = 3306
#
允许监听的 IP 地址(0.0.0.0 表示允许所有 IP 连接)
bind-address = 0.0.0.0
# MySQL
数据文件和日志文件的打开文件数限制
open_files_limit = 65535
#
日志设置
log_error = /data/mysql/mysql-error.log
slow_query_log = 1
slow_query_log_file = /data/mysql/mysql-slow.log
long_query_time = 2
# InnoDB
配置
innodb_buffer_pool_size = 1G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 1
innodb_file_per_table = 1
innodb_flush_method = O_DIRECT
#
客户端连接超时
wait_timeout = 600
interactive_timeout = 600
#
允许导入空密码
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set = utf8mb4
保存并退出编辑器

7、创建软连接
`mysqld` 创建软链接到 `/usr/bin/`,方便直接使用:
```bash
sudo ln -sf /usr/local/mysql/bin/mysqld /usr/bin/mysqld

8、启动mysql服务
创建并编辑服务文件

sudo vi /etc/systemd/system/mysqld.service

按下 i 键,进入插入模式。

输入服务文件的内容(见下方示例)。

保存并退出

按下 Esc 键,退出插入模式。

输入 :wq,然后按 Enter,保存文件并退出。

[Unit]

Description=MySQL Server

After=network.target

[Service]

User=mysql

Group=mysql

ExecStart=/usr/local/mysql/bin/mysqld_safe --user=mysql

ExecStop=/usr/local/mysql/bin/mysqladmin -u root -p shutdown

Restart=always

LimitNOFILE=65535

[Install]

WantedBy=multi-user.target

 

为了让 systemd 识别新创建的服务文件,执行以下命令:

sudo systemctl daemon-reload

使用以下命令启动 MySQL

sudo systemctl start mysqld

检查服务状态

确认 MySQL 是否成功启动:

sudo systemctl status mysqld

 

如果一切正常,状态将显示为 active (running)

q键退出分页界面

如果需要 MySQL 随系统启动自动运行,执行以下命令:

sudo systemctl enable mysqld

 

停止 MySQL 服务

sudo systemctl stop mysqld

重启mysql服务

sudo systemctl restart mysqld

禁用开机启动

sudo systemctl disable mysqld

9、添加MySQL路径到系统环境变量

为了让MySQL的命令在任意目录下都能使用,你需要将MySQL的安装路径添加到系统的环境变量中。

编辑 ~/.bashrc 文件

你可以通过编辑用户主目录下的 ~/.bashrc 文件来实现。

打开 ~/.bashrc 文件:

vi ~/.bashrc

 

进入 vi 编辑器后,默认是命令模式,按 i 键进入插入模式(Edit Mode),此时可以开始编辑文件。

在文件末尾添加以下内容,将 MySQL 的路径添加到环境变量中,确保路径替换为你实际的 MySQL 安装路径:

export PATH=$PATH:/usr/local/mysql/bin

 Esc 键退出插入模式,回到命令模式。

输入 :wq ,然后按 Enter 键,保存并退出。

编辑完成后,使用以下命令使配置立即生效:

source ~/.bashrc

验证配置:

mysql --version

# 或(效果一样)

mysql -V

 如果显示 MySQL 的版本信息,说明配置成功

可能会出现这个问题

解决方法

openEuler 默认使用较新的 ncurses 库(如 libtinfo.so.6),而 MySQL 客户端可能需要旧版 libtinfo.so.5。可以手动创建软链接解决:

# 检查是否存在 libtinfo.so.6

ls /usr/lib*/libtinfo.so.6

# 创建软链接:

sudo ln -s /usr/lib64/libtinfo.so.6 /usr/lib64/libtinfo.so.5

# 也可以尝试安装 ncurses 兼容包:

sudo dnf install ncurses-compat-libs

解决后

10. 配置防火墙,开放 MySQL 端口
MySQL
默认使用 `3306` 端口,开放该端口:
命令
sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
sudo firewall-cmd –reload

说明我的防火墙没有运行。

11、修改密码,创建新用户,允许创建的新用户外部访问

先使用初始化得到的密码登录

mysql -u root -p

然后修改root用户密码

ALTER USER 'root'@'localhost' IDENTIFIED BY '750801gjjG';

创建一个新用户并赋予权限

CREATE USER 'gjj'@'%' IDENTIFIED BY '750801gjjGONG';

GRANT ALL PRIVILEGES ON *.* TO 'gjj'@'%';

FLUSH PRIVILEGES;

确保 MySQL 允许外部连接:

UPDATE mysql.user SET host='%' WHERE user='gjj';

FLUSH PRIVILEGES;

 

验证 MySQL 是否正常运行:

12navicat链接mysql

 

 

输入服务器ip,创建的mysql用户和密码,注意我们给创建的新用户host设置为%,允许所有外部访问,并没有给roothost设置%,所以只有新创建的用户可以链接。

链接后的页面

如果不能链接请检查iptablesfirewalld防火墙是否运行,如果运行,请在防火墙开放3306端口。

打开华为云服务器,找到安全组

添加一个开放3306端口的额规则

点击上面的管理实例,添加到服务器


通过以上步骤,您在 **EulerOS** 上使用二进制包方式成功安装了 **MySQL 8.0.25**,并完成了包括防火墙配置、用户创建、外部连接允许等操作。`my.cnf` 提供了详细的配置,确保 MySQL 性能和稳定性。二进制报的方式安装避免了依赖冲突,可以完美安装。