MySQL数据库认知与安装

MySQL数据库认知与安装 一、MySQL数据库简介MySQL是一款开源的关系型数据库管理系统RDBMS由Oracle公司维护广泛应用于中小型网站、企业级应用的数据存储场景。其核心特点包括开源免费社区版可免费使用商业版提供更完善的技术支持。跨平台支持Linux、Windows、Unix等多种操作系统本文重点讲解Linux系统下的安装与配置。性能优异对并发访问支持良好轻量级且资源占用低适合高并发场景。易用性强SQL语法标准配置简单拥有丰富的工具如mysql命令行、Navicat支持。Linux系统中MySQL的常见版本分为社区版MySQL Community Server和商业版MySQL Enterprise Edition日常学习、开发优先选择社区版。二、Linux系统MySQL安装前提2.1 系统环境要求系统版本CentOS 7/8、Ubuntu 18.04/20.04本文以CentOS 7为例Ubuntu步骤略有差异。硬件要求最低1GB内存、10GB磁盘空间实际生产环境建议2GB以上内存。网络要求能访问外网用于下载MySQL安装包或依赖关闭防火墙或开放MySQL默认端口3306。2.2 前置准备操作安装前需清理系统中已有的MySQL或MariaDBCentOS默认自带MariaDB与MySQL冲突步骤如下查看已安装的相关软件rpm -qa | grep mysql、rpm -qa | grep mariadb。卸载已安装的软件以MariaDB为例yum remove mariadb-server mariadb-libs -yUbuntu用apt remove mariadb-server。删除残留文件rm -rf /var/lib/mysql/、rm -rf /etc/my.cnf。安装依赖包yum install -y wget gcc gcc-c perlUbuntu用apt install -y wget gcc perl。三、Linux系统MySQL安装步骤MySQL安装方式主要有3种rpm包安装、源码编译安装、yum仓库安装。其中rpm方式步骤简单适合新手本文重点讲解此方式。3.1 下载MySQL rpm安装包进入MySQL官方下载地址或使用wget命令直接下载 官方地址https://dev.mysql.com/downloads/mysql/选择对应Linux版本CentOS 7选择el7版本。使用wget命令下载推荐需提前安装wgetwget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar解压安装包tar -xvf mysql-8.0.36-1.el7.x86_64.rpm-bundle.tar解压后得到多个rpm文件。3.2 安装MySQL相关rpm包解压后按以下顺序安装顺序错误会导致依赖报错安装客户端依赖rpm -ivh mysql-community-common-8.0.36-1.el7.x86_64.rpm安装客户端libsrpm -ivh mysql-community-libs-8.0.36-1.el7.x86_64.rpm安装客户端rpm -ivh mysql-community-client-8.0.36-1.el7.x86_64.rpm安装服务器端rpm -ivh mysql-community-server-8.0.36-1.el7.x86_64.rpm若安装过程中提示“依赖检测失败”可在rpm命令后加--nodeps --force强制安装不推荐优先解决依赖问题。3.3 启动MySQL服务并设置开机自启启动MySQL服务systemctl start mysqld查看服务状态systemctl status mysqld出现“active (running)”即为启动成功。设置开机自启避免重启系统后服务失效systemctl enable mysqld3.4 初始化MySQLMySQL 8.0安装后会自动生成初始密码存储在日志文件中查看初始密码grep temporary password /var/log/mysqld.log复制日志中的初始密码格式类似rootlocalhost: xxxxxxxx冒号后为密码后续登录需使用。3.5 登录MySQL并修改初始密码登录MySQL命令行mysql -u root -p输入上一步获取的初始密码回车登录。修改初始密码MySQL 8.0密码有复杂度要求至少8位包含大小写、数字、特殊符号ALTER USER rootlocalhost IDENTIFIED BY NewPassword123;替换NewPassword123为自己的密码刷新权限使密码修改生效FLUSH PRIVILEGES;3.6 配置MySQL远程访问默认情况下MySQL只允许本地localhost访问若需远程连接如用Navicat需配置远程权限登录MySQL后执行以下命令允许root用户从任意IP远程访问生产环境建议限制具体IPCREATE USER root% IDENTIFIED BY NewPassword123;密码与上一步一致授予远程访问权限GRANT ALL PRIVILEGES ON *.* TO root% WITH GRANT OPTION;刷新权限FLUSH PRIVILEGES;开放Linux防火墙3306端口firewall-cmd --permanent --add-port3306/tcpfirewall-cmd --reload四、MySQL基础操作4.1 登录与退出登录mysql -u 用户名 -p如mysql -u root -p输入密码后登录。退出exit;或quit;4.2 数据库基础操作查看所有数据库show databases;创建数据库create database 数据库名;如create database test_db;使用数据库use 数据库名;如use test_db;删除数据库drop database 数据库名;谨慎操作删除后无法恢复4.3 表基础操作需先使用数据库查看当前数据库所有表show tables;创建表create table 表名(字段名1 数据类型,字段名2 数据类型,primary key(字段名1));示例create table student(id int, name varchar(20), primary key(id));查看表结构desc 表名;如desc student;删除表drop table 表名;谨慎操作五、常见问题及解决方法问题1启动mysqld服务失败提示“Job for mysqld.service failed because the control process exited with error code.” 解决查看日志排查原因cat /var/log/mysqld.log常见原因是残留的MySQL文件未删除重新执行前置准备中的删除残留文件步骤再重启服务。问题2登录MySQL时提示“Access denied for user rootlocalhost (using password: YES)” 解决密码错误重新获取初始密码若忘记密码需重置密码参考MySQL重置密码教程。问题3远程连接MySQL失败 解决1. 检查MySQL远程权限是否配置正确2. 检查Linux防火墙3306端口是否开放3. 确认远程设备与Linux服务器网络互通。问题4MySQL密码复杂度不满足要求修改密码失败 解决密码需包含大小写字母、数字、特殊符号长度至少8位按要求重新设置密码。六、补充说明MySQL配置文件路径/etc/my.cnf可修改端口、字符集、日志路径等配置修改后需重启mysqld服务生效。MySQL日志路径/var/log/mysqld.log出现问题时优先查看日志排查。Ubuntu系统安装步骤与CentOS类似将yum命令替换为apt下载对应Ubuntu版本的rpm包或deb包。卸载MySQL执行rpm -e --nodeps 包名先查看已安装包名再删除残留文件。