热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Linux环境下MySQL的安装与配置

本文详细介绍了在Linux系统上安装和配置MySQL的步骤,包括安装前的准备工作、下载和解压安装包、初始化数据库、配置文件编辑、启动服务以及设置开机自启动等。

一、安装前准备

1. 检查是否已安装MySQL,执行命令:

[root@localhost ~]# rpm -qa | grep mysql

从执行结果可以看出已安装的MySQL版本,如mysql-libs-5.1.73-5.el6_6.x86_64。若已安装,执行卸载命令:

[root@localhost ~]# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64

再次执行查询命令,确认是否已卸载:

[root@localhost ~]# rpm -qa | grep mysql

2. 查询所有MySQL相关的文件夹:

[root@localhost ~]# whereis mysql
mysql: /usr/bin/mysql /usr/include/mysql
[root@localhost ~]# find / -name mysql

删除相关目录或文件:

[root@localhost ~]# rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql

验证是否删除完毕:

[root@localhost ~]# whereis mysql
mysql:
[root@localhost ~]# find / -name mysql

3. 检查MySQL用户组和用户是否存在,若不存在则创建:

[root@localhost ~]# cat /etc/group | grep mysql
[root@localhost ~]# cat /etc/passwd | grep mysql
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -r -g mysql mysql

4. 从MySQL官网下载适用于Linux的安装包:

下载命令:

[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

也可以直接访问MySQL官网选择其他版本进行下载。

二、安装MySQL

1. 在执行wget命令的目录下或上传目录下找到MySQL安装包:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz,执行解压命令:

[root@localhost ~]# tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
[root@localhost ~]# ls
mysql-5.7.24-linux-glibc2.12-x86_64
mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

解压完成后,将解压文件移动到/usr/local/mysql

[root@localhost ~]# mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql

2. 在/usr/local/mysql目录下创建data目录:

[root@localhost ~]# mkdir /usr/local/mysql/data

3. 更改mysql目录下所有文件和目录的所属用户组和用户,以及权限:

[root@localhost ~]# chown -R mysql:mysql /usr/local/mysql
[root@localhost ~]# chmod -R 755 /usr/local/mysql

4. 编译安装并初始化MySQL,务必记住初始化输出日志末尾的密码(数据库管理员临时密码):

[root@localhost ~]# cd /usr/local/mysql/bin
[root@localhost bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

补充说明:

此时可能会出现错误,如缺少依赖库文件。首先检查该链接库文件是否已安装:

[root@localhost bin]# rpm -qa | grep libaio

若未安装,使用以下命令安装:

[root@localhost bin]# yum install libaio-devel.x86_64

安装成功后,继续运行数据库的初始化命令。若仍出现错误,如缺少numactl库文件,使用以下命令安装:

[root@localhost bin]# yum -y install numactl

5. 运行初始化命令成功后,输出日志如下:

2023-10-01T12:34:56.789012Z 1 [Note] A temporary password is generated for root@localhost: your_temp_password

记录日志最末尾位置root@localhost:后的字符串,此字符串为MySQL管理员临时登录密码。

6. 编辑配置文件my.cnf,添加配置如下:

[root@localhost bin]# vi /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_cOnnections=400
innodb_file_per_table=1
lower_case_table_names=1

7. 启动MySQL服务器:

[root@localhost ~]# /usr/local/mysql/support-files/mysql.server start

显示如下结果,说明数据库安装成功:

Starting MySQL... SUCCESS!

若出现错误提示,如PID文件未更新,检查是否存在MySQL和mysqld的服务,若存在则结束进程,再重新执行启动命令:

# 查询服务
ps -ef | grep mysql
ps -ef | grep mysqld
# 结束进程
kill -9 PID
# 启动服务
/usr/local/mysql/support-files/mysql.server start

8. 添加软连接,并重启MySQL服务:

[root@localhost ~]# ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
[root@localhost ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
[root@localhost ~]# service mysql restart

9. 登录MySQL,修改密码(密码为步骤5生成的临时密码):

[root@localhost ~]# mysql -u root -p
Enter password:
mysql> set password for root@localhost = password('yourpass');

10. 开放远程连接:

mysql> use mysql;
mysql> update user set Host='%' where User='root';
mysql> flush privileges;

11. 设置开机自动启动:

1. 将服务文件拷贝到init.d下,并重命名为mysql
[root@localhost ~]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2. 赋予可执行权限
[root@localhost ~]# chmod +x /etc/init.d/mysqld
3. 添加服务
[root@localhost ~]# chkconfig --add mysqld
4. 显示服务列表
[root@localhost ~]# chkconfig --list


推荐阅读
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • UNP 第9章:主机名与地址转换
    本章探讨了用于在主机名和数值地址之间进行转换的函数,如gethostbyname和gethostbyaddr。此外,还介绍了getservbyname和getservbyport函数,用于在服务器名和端口号之间进行转换。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 使用Vultr云服务器和Namesilo域名搭建个人网站
    本文详细介绍了如何通过Vultr云服务器和Namesilo域名搭建一个功能齐全的个人网站,包括购买、配置服务器以及绑定域名的具体步骤。文章还提供了详细的命令行操作指南,帮助读者顺利完成建站过程。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • Scala 实现 UTF-8 编码属性文件读取与克隆
    本文介绍如何使用 Scala 以 UTF-8 编码方式读取属性文件,并实现属性文件的克隆功能。通过这种方式,可以确保配置文件在多线程环境下的一致性和高效性。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 掌握远程执行Linux脚本和命令的技巧
    本文将详细介绍如何利用Python的Paramiko库实现远程执行Linux脚本和命令,帮助读者快速掌握这一实用技能。通过具体的示例和详尽的解释,让初学者也能轻松上手。 ... [详细]
  • 本文介绍了如何使用PHP代码实现微信平台的媒体素材上传功能,详细解释了API接口的使用方法和注意事项,确保文件路径正确以避免常见的错误。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 从零开始构建完整手机站:Vue CLI 3 实战指南(第一部分)
    本系列教程将引导您使用 Vue CLI 3 构建一个功能齐全的移动应用。我们将深入探讨项目中涉及的每一个知识点,并确保这些内容与实际工作中的需求紧密结合。 ... [详细]
  • VSCode与Gitee集成:项目提交的高效实践
    本文介绍如何利用VSCode内置的Git工具将项目提交到Gitee,简化Git命令的使用,提升代码管理效率。同时分享一些常见的踩坑经验和解决方案。 ... [详细]
author-avatar
mobiledu2502880383
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有