当前位置: 首页 > news >正文

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复制

sudo yum install -y libaio ncurses-compat-libs

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

bash复制

sudo apt-get update
sudo apt-get install -y libaio1

3. 创建MySQL用户和组

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

bash复制

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

4. 创建安装目录

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

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复制

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复制

sudo -u mysql /usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

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

bash复制

sudo grep 'temporary password' /usr/local/mysql/data/*.err

3. 配置MySQL

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

bash复制

sudo vi /etc/my.cnf

在文件中添加以下内容:

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复制

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复制

mysql -u root -p

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

sql复制

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

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

2. 配置远程访问

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

sql复制

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'new_password' WITH GRANT OPTION;
FLUSH PRIVILEGES;

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

3. 创建数据库和用户

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

sql复制

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

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

四、验证安装

1. 检查服务状态

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

bash复制

sudo systemctl status mysql

2. 登录MySQL

使用新密码登录MySQL:

bash复制

mysql -u root -p

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

3. 测试数据库操作

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

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复制

sudo tail -f /usr/local/mysql/data/*.err

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

2. 远程连接失败

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

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

    bash复制

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

3. 性能问题

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

ini复制

[mysqld]
innodb_buffer_pool_size = 2G
innodb_log_file_size = 512M
innodb_flush_log_at_trx_commit = 2

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


http://www.lryc.cn/news/526601.html

相关文章:

  • 声明,这些内容和我无关
  • ISO:摄影中的光线敏感度密码
  • 长短期记忆网络LSTM
  • 2. 握手问题python解法——2024年省赛蓝桥杯真题
  • poi在word中打开本地文件
  • 国产编辑器EverEdit - 输出窗口
  • 整数的个数(信息学奥赛一本通-1067)
  • ios swift画中画技术尝试
  • MyBatis 写法
  • Three城市引擎地图插件Geo-3d
  • 【贪心算法】洛谷P1106 - 删数问题
  • WPS计算机二级•幻灯片的页面布局
  • 从入门到精通:HttpClient深度剖析与实战指南
  • IoTDB 2025 春节值班与祝福
  • Java 大视界 -- Java 大数据中的隐私增强技术全景解析(64)
  • 【2024年华为OD机试】 (A卷,100分)- 整理扑克牌(JavaScriptJava PythonC/C++)
  • 周末总结(2024/01/25)
  • Apache Flink 概述学习笔记
  • 双足机器人开源项目
  • Linux 部署 Java 项目:Tomcat、Redis、MySQL 教程
  • Django 多环境配置实战指南
  • 【C++高并发服务器WebServer】-6:信号
  • HBase的原理
  • [b01lers2020]Life on Mars1
  • Go学习:常量
  • Python 爬虫——爬取Web页面图片
  • 微信小程序1.1 微信小程序介绍
  • 记录备战第十六届蓝桥杯的过程
  • AI 编程工具—Cursor进阶使用 Rules for AI
  • 以租赁合同的例子讲清楚 开源协议原理和区别