华为云服务器Euleros系统安装mysql,二进制包方式安装
1、检查系统版本:确保是华为云EulerOS
命令:cat /etc/os-release
2、确认系统架构:通常是x86_64(64位系统)
命令:uname -m
3、MySQL运行需要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
写入以下内容,里面的安装目录就是你解压移动后的目录。
[mysql]
# 默认字符集
default-character-set = utf8mb4
[mysqld]
# MySQL 安装目录
basedir = /usr/local/mysql
# 数据目录
datadir = /data/mysql
# 数据库引擎,这里设置为 InnoDB(MySQL 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 是否正常运行:
12、navicat链接mysql
输入服务器ip,创建的mysql用户和密码,注意我们给创建的新用户host设置为%,允许所有外部访问,并没有给root的host设置%,所以只有新创建的用户可以链接。
链接后的页面
如果不能链接请检查iptables和firewalld等防火墙是否运行,如果运行,请在防火墙开放3306端口。
打开华为云服务器,找到安全组
添加一个开放3306端口的额规则
点击上面的管理实例,添加到服务器
通过以上步骤,您在 **EulerOS** 上使用二进制包方式成功安装了 **MySQL 8.0.25**,并完成了包括防火墙配置、用户创建、外部连接允许等操作。`my.cnf` 提供了详细的配置,确保 MySQL 性能和稳定性。二进制报的方式安装避免了依赖冲突,可以完美安装。