Linux MySQL离线安装

一、准备工作

1. 下载MySQL安装包

  • 访问MySQL官方网站,选择适合您Linux系统的MySQL版本进行下载。
  • 通常推荐下载Generic Linux (glibc 2.12)版本的.tar.gz压缩包,例如mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz
  • 将下载好的安装包拷贝到Linux服务器的某个目录下,例如/opt/mysql

2. 安装依赖包

在安装MySQL之前,需要确保系统已经安装了以下依赖包:

bash复制

bash 复制代码
sudo yum install -y libaio ncurses-compat-libs

如果使用的是apt包管理器,可以使用以下命令:

bash复制

bash 复制代码
sudo apt-get update
sudo apt-get install -y libaio1

3. 创建MySQL用户和组

为了安全起见,MySQL应该以非root用户运行。创建一个专门的MySQL用户和组:

bash复制

bash 复制代码
sudo groupadd mysql
sudo useradd -r -g mysql -s /bin/false mysql

4. 创建安装目录

创建MySQL的安装目录和数据目录:

bash复制

bash 复制代码
sudo mkdir -p /usr/local/mysql
sudo mkdir -p /usr/local/mysql/data
sudo chown -R mysql:mysql /usr/local/mysql
sudo chown -R mysql:mysql /usr/local/mysql/data

二、安装MySQL

1. 解压安装包

进入存放MySQL安装包的目录,解压下载的文件:

bash复制

bash 复制代码
cd /opt/mysql
tar -xvf mysql-8.0.33-linux-glibc2.12-x86_64.tar.xz -C /usr/local/mysql --strip-components=1

这里--strip-components=1的作用是将解压后的文件直接放到/usr/local/mysql目录下,而不是多一层文件夹。

2. 初始化MySQL

mysql用户身份初始化MySQL数据库:

bash复制

bash 复制代码
sudo -u mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

初始化完成后,MySQL会生成一个临时密码,记录在日志文件中。可以通过以下命令查看临时密码:

bash复制

bash 复制代码
sudo grep 'temporary password' /usr/local/mysql/data/*.err

3. 配置MySQL

创建MySQL的配置文件my.cnf,并将其放置在/etc目录下:

bash复制

bash 复制代码
sudo vi /etc/my.cnf

在文件中添加以下内容:

ini复制

ini 复制代码
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
port=3306
pid-file=/usr/local/mysql/mysql.pid

[client]
socket=/usr/local/mysql/mysql.sock

根据需要,可以进一步调整配置文件中的参数,例如内存使用、字符集等。

4. 启动MySQL服务

启动MySQL服务,并设置开机自启:

bash复制

bash 复制代码
sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
sudo systemctl enable mysql
sudo systemctl start mysql

三、配置MySQL

1. 修改默认密码

使用临时密码登录MySQL,然后修改默认密码:

bash复制

bash 复制代码
mysql -u root -p

输入临时密码后,执行以下命令修改密码:

sql复制

sql 复制代码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

new_password替换为您希望设置的新密码。

2. 配置远程访问

如果需要从其他主机访问MySQL数据库,需要修改MySQL的用户权限。执行以下命令:

sql复制

sql 复制代码
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

这将允许root用户从任何IP地址访问MySQL数据库。出于安全考虑,建议仅允许信任的IP地址访问。

3. 创建数据库和用户

根据需要创建新的数据库和用户:

sql复制

sql 复制代码
CREATE DATABASE mydb;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

mydbmyusermypassword替换为您需要的数据库名称、用户名和密码。

四、验证安装

1. 检查服务状态

检查MySQL服务是否正常运行:

bash复制

bash 复制代码
sudo systemctl status mysql

2. 登录MySQL

使用新密码登录MySQL:

bash复制

bash 复制代码
mysql -u root -p

输入密码后,如果能够成功登录,说明MySQL安装成功。

3. 测试数据库操作

在MySQL命令行中,执行以下命令测试数据库操作:

sql复制

sql 复制代码
USE mydb;
CREATE TABLE test_table (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50));
INSERT INTO test_table (name) VALUES ('Kimi');
SELECT * FROM test_table;

如果能够正常执行上述操作,说明MySQL安装并配置成功。

五、常见问题及解决方法

1. 启动失败

如果MySQL服务无法启动,可能是配置文件或数据目录有问题。检查日志文件:

bash复制

bash 复制代码
sudo tail -f /usr/local/mysql/data/*.err

根据日志中的错误信息进行排查。

2. 远程连接失败

如果无法从远程主机连接MySQL,可能是防火墙或用户权限问题:

  • 确保防火墙允许MySQL端口(默认为3306):

    bash复制

    bash 复制代码
    sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent
    sudo firewall-cmd --reload
  • 确保MySQL用户权限已正确设置。

3. 性能问题

如果MySQL性能不佳,可以调整配置文件中的参数,例如:

ini复制

ini 复制代码
[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2

根据服务器的硬件配置调整参数,并重启MySQL服务。


相关推荐
ulias2126 小时前
Linux系统中的权限问题
linux·运维·服务器
沃尔威武7 小时前
数据库 Sinks(.net8)
数据库·.net·webview
青花瓷7 小时前
Ubuntu下OpenClaw的安装(豆包火山API版)
运维·服务器·ubuntu
mzhan0178 小时前
Linux: lock: preempt_count 是一个线程级别的变量
linux·lock
问简8 小时前
docker 镜像相关
运维·docker·容器
Dreamboat¿8 小时前
SQL 注入漏洞
数据库·sql
Dream of maid8 小时前
Linux(下)
linux·运维·服务器
齐鲁大虾8 小时前
统信系统UOS常用命令集
linux·运维·服务器
Benszen9 小时前
Docker容器化技术实战指南
运维·docker·容器
ZzzZZzzzZZZzzzz…9 小时前
Nginx 平滑升级:从 1.26.3 到 1.28.0,用户无感知
linux·运维·nginx·平滑升级·nginx1.26.3·nginx1.28.0