装修网站怎么建设,商标设计公司排名前十强,优化营商环境条例解读,网上服装定制平台前言 作为后端开发、数据库学习的入门必备#xff0c;MySQL 的环境配置是很多小伙伴的第一道 “小关卡”。尤其是不同 Linux 发行版#xff08;CentOS 7、Ubuntu#xff09;的安装步骤差异#xff0c;再加上系统自带 MariaDB 的干扰、密码策略限制、中文编码等坑#xff0…前言作为后端开发、数据库学习的入门必备MySQL 的环境配置是很多小伙伴的第一道 “小关卡”。尤其是不同 Linux 发行版CentOS 7、Ubuntu的安装步骤差异再加上系统自带 MariaDB 的干扰、密码策略限制、中文编码等坑很容易让人踩雷卡壳。这篇博客就带来保姆级 MySQL 环境配置指南不仅详细拆解 CentOS 7 下的完整安装步骤从卸载冲突环境到配置优化还补充了 Ubuntu 系统的安装流程全程命令可直接复制新手也能一步到位搞定 MySQL 环境告别配置报错的烦恼下面就让我们正式开始吧一、前置知识为什么要先处理 MariaDBMySQL 被 Oracle 收购后很多 Linux 发行版比如 CentOS 7、Ubuntu会默认预装MariaDB—— 它是 MySQL 的分支语法兼容但底层有差异会和官方 MySQL 产生端口、配置文件的冲突因此安装 MySQL 前必须彻底卸载 MariaDB这是配置成功的关键第一步本文中所有操作优先使用root用户执行普通用户需加sudo获取权限初期学习阶段建议直接用 MySQL root 用户操作后续熟悉用户管理后再创建普通用户即可。二、CentOS 7 系统下 MySQL 完整安装配置本次 CentOS 7 环境安装的是 MySQL 5.7 版本兼容性强、学习常用全程通过官方 YUM 源安装稳定无第三方依赖问题步骤分为卸载冲突环境→配置官方 YUM 源→安装 MySQL→初始化配置→优化设置五大环节。2.1 卸载系统自带 MariaDB / 旧版 MySQL步骤 1检查 MariaDB 进程并停止首先查看系统中是否有 MariaDB 进程在运行有则立即停止避免卸载时出现资源占用报错# 检查MariaDB进程 ps ajx | grep mariadb # 停止MariaDB服务 systemctl stop mariadb.service # 再次检查确认无相关进程 ps ajx | grep mariadb步骤 2检查并卸载相关安装包通过rpm命令查询系统中已安装的 MariaDB/MySQL 相关包然后逐一卸载# 查询MariaDB安装包 rpm -qa | grep mariadb # 查询MySQL安装包若有旧版 rpm -qa | grep mysql # 卸载MariaDB替换为查询到的包名也可直接批量卸载 sudo yum remove mariadb -y # 若有多个包可直接通配符卸载 sudo yum remove mariadb* mysql* -y步骤 3备份重要配置和数据卸载前建议备份 MySQL/MariaDB 的配置文件和数据目录防止误删重要内容# 备份配置文件 cp /etc/my.cnf /etc/my.cnf.bak # 备份数据存储目录 cp -r /var/lib/mysql /var/lib/mysql.bak2.2 配置 MySQL 官方 YUM 源CentOS 7 默认 YUM 源中没有 MySQL 官方包需要手动添加官方 YUM 源建议安装和系统版本匹配的 MySQL 版本避免兼容性问题。步骤 1查看系统版本确认 CentOS 7 的具体版本保证后续下载的 YUM 源和系统匹配cat /etc/redhat-release输出示例CentOS Linux release 7.8.2003 (Core)步骤 2下载并安装官方 YUM 源MySQL 官方 YUM 源地址http://repo.mysql.com/我们下载 MySQL 5.7 的 CentOS 7 专属 YUM 源包并安装# 下载MySQL 5.7 YUM源包 wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm # 安装YUM源普通用户加sudo解决权限问题 sudo rpm -Uvh mysql57-community-release-el7-10.noarch.rpm步骤 3验证 YUM 源安装成功安装后会在/etc/yum.repos.d/目录下生成 mysql-community.repo 和 mysql-community-source.repo 两个文件验证如下# 查看YUM源目录确认出现MySQL相关repo文件 ls /etc/yum.repos.d/ | grep mysql步骤 4检查 YUM 源可用性确认 MySQL YUM 源可正常识别执行如下命令查看可安装的 MySQL 包yum list | grep mysql若输出中出现mysql-community-server等包说明 YUM 源配置成功。2.3 安装 MySQL 服务通过 YUM 源安装 MySQL 官方服务端和客户端-y参数表示自动确认所有安装选项无需手动回车sudo yum install -y mysql-community-server安装过程中会自动安装依赖包mysql-community-common、mysql-community-libs、mysql-community-client耐心等待即可。常见坑 1安装时出现秘钥过期报错提示GPG Keys are configured as: file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql解决方案导入最新的 MySQL 官方秘钥即可rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022重新执行安装命令即可成功。2.4 启动 MySQL 并验证服务状态步骤 1启动 MySQL 服务# 启动MySQL服务 systemctl start mysqld.service # 设置开机自启可选建议开启避免重启系统后服务失效 systemctl enable mysqld # 重载系统服务配置 systemctl daemon-reload步骤 2验证 MySQL 服务是否运行通过进程查询确认 MySQL 服务正常启动ps axj | grep mysqld若输出中出现/usr/sbin/mysqld相关进程说明服务启动成功。2.5 登录 MySQL 并修改初始密码MySQL 5.7 安装后会自动生成临时 root 密码存放在/var/log/mysqld.log日志文件中必须先通过临时密码登录再修改为自定义密码以下提供 3 种登录方法按顺序尝试即可。方法 1通过临时密码登录推荐99% 可用# 从日志中提取临时root密码 sudo grep temporary password /var/log/mysqld.log输出示例rootlocalhost: yLMalT:v5l*冒号后为临时密码复制即可# 登录MySQL输入上述临时密码 mysql -uroot -p密码策略限制MySQL 5.7 默认开启密码强度验证要求密码包含数字、符号、大小写字母长度至少 8 位新手可先关闭该策略再设置简单密码-- 关闭密码强度验证策略0为最低1为中2为高 set global validate_password_policy0; -- 设置密码最小长度为1位 set global validate_password_length1; -- 修改root本地登录密码替换为自己的密码示例qwerwu.888 ALTER USER rootlocalhost IDENTIFIED BY qwerwu.888; -- 刷新权限使配置生效 FLUSH PRIVILEGES;执行完成后退出 MySQL 重新登录即可使用新密码。方法 2直接登录适用于新版 MySQL无临时密码若上述命令未提取到临时密码说明安装的 MySQL 版本无初始密码直接执行如下命令登录mysql -uroot -p出现密码输入框时直接回车即可成功登录后续按方法 1 修改密码即可。方法 3跳过权限验证登录适用于密码丢失 / 登录失败若前两种方法均失败可通过修改配置文件跳过 MySQL 权限验证强制登录后重置密码# 编辑MySQL主配置文件 vim /etc/my.cnf在[mysqld]节点最后添加如下配置保存并退出vim 中按i编辑ESC:wq保存# 跳过MySQL权限验证 skip-grant-tables# 重启MySQL服务使配置生效 systemctl restart mysqld.service # 直接登录无需输入密码 mysql -uroot登录后执行如下 SQL 重置密码重置后必须删除 skip-grant-tables 配置并重启服务否则 MySQL 无权限验证存在安全风险-- 切换到mysql系统库 USE mysql; -- 重置root密码替换为自己的密码 UPDATE user SET authentication_stringPASSWORD(qwerwu.888) WHERE Userroot AND Hostlocalhost; -- 刷新权限 FLUSH PRIVILEGES; -- 退出MySQL exit;# 编辑配置文件删除skip-grant-tables配置 vim /etc/my.cnf # 重启MySQL服务 systemctl restart mysqld.service2.6 MySQL 配置优化编码、存储引擎默认的 MySQL 配置存在中文编码乱码、存储引擎未指定等问题需要修改/etc/my.cnf配置文件优化核心参数本次配置UTF-8 编码和InnoDB 默认存储引擎MySQL 主流存储引擎支持事务、行锁。# 编辑配置文件 vim /etc/my.cnf按如下内容修改保留原有配置补充缺失项即可[mysql] # 客户端编码暂不设置避免MySQL汉字回显bug可后续根据需求开启 # default-character-setutf8 [mysqld] # MySQL端口默认3306 port3306 # 数据存储目录 datadir/var/lib/mysql # 套接字文件 socket/var/lib/mysql/mysql.sock # 禁用符号链接防止安全风险 symbolic-links0 # 日志文件路径 log-error/var/log/mysqld.log # 进程文件路径 pid-file/var/run/mysqld/mysqld.pid # 服务端编码UTF-8 character-set-serverutf8 # 默认存储引擎InnoDB default-storage-engineinnodb # InnoDB缓冲池大小根据服务器内存调整专用服务器设为内存70%普通服务器10% # innodb_buffer_pool_size 128M修改完成后重启 MySQL 服务使配置生效systemctl restart mysqld.service2.7 CentOS 7 安装后常见问题解决问题 1配置 UTF-8 后仍无法输入中文原因终端本身不支持 UTF-8 编码而非 MySQL 配置问题。解决方案检查终端 LANG 环境变量确保为 UTF-8 编码# 查看LANG变量 env | grep LANG若输出不是LANGen_US.utf8则修改终端编码永久生效需修改/etc/profile文件# 临时设置UTF-8编码 export LANGen_US.utf8 # 永久设置编辑profile文件 echo export LANGen_US.utf8 /etc/profile # 使配置生效 source /etc/profile问题 2MySQL 服务启动失败排查思路查看 MySQL 错误日志定位具体失败原因# 查看错误日志最后100行 tail -100 /var/log/mysqld.log常见原因端口 3306 被占用、数据目录权限不足、配置文件语法错误对应解决即可。三、Ubuntu 系统下 MySQL 完整安装配置Ubuntu 系统以 20.04/22.04 为例安装 MySQL 和 CentOS 7 差异较大Ubuntu 使用apt包管理器且默认预装的 MariaDB 处理方式更简单本次安装 MySQL 8.0 版本Ubuntu 官方源中主流版本步骤分为卸载 MariaDB→更新 apt 源→安装 MySQL→初始化配置→远程访问配置。3.1 卸载系统自带 MariaDB# 停止MariaDB服务 sudo systemctl stop mariadb # 卸载MariaDB所有包 sudo apt remove mariadb-server mariadb-client mariadb-common -y # 清理残留配置文件 sudo apt autoremove -y sudo apt clean3.2 更新 apt 源并安装 MySQLUbuntu 默认 apt 源包含 MySQL 官方包直接更新源后安装即可推荐安装mysql-server包含服务端 客户端 依赖# 更新apt软件源 sudo apt update sudo apt upgrade -y # 安装MySQL服务 sudo apt install mysql-server -y安装过程中无需手动设置密码Ubuntu 的 MySQL 会自动创建 root 用户并采用auth_socket认证方式仅本地 root 用户可登录无需密码。3.3 验证 MySQL 服务状态# 查看MySQL服务状态 sudo systemctl status mysql # 设置开机自启 sudo systemctl enable mysql若输出中显示active (running)说明服务启动成功。3.4 配置 MySQL root 用户密码与登录方式Ubuntu 安装的 MySQL 默认不允许密码登录需要先修改认证方式为mysql_native_password再设置密码步骤如下# 以root身份登录MySQLUbuntu本地免密 sudo mysql -uroot执行如下 SQL 语句修改 root 密码并更改认证方式-- 切换到mysql系统库 USE mysql; -- 修改root认证方式为密码认证设置密码替换为自己的密码 ALTER USER rootlocalhost IDENTIFIED WITH mysql_native_password BY MySql123456; -- 刷新权限 FLUSH PRIVILEGES; -- 退出MySQL exit;修改完成后即可通过密码正常登录mysql -uroot -p输入设置的密码即可成功登录。3.5 Ubuntu MySQL 编码与核心配置优化Ubuntu 的 MySQL 主配置文件为/etc/mysql/mysql.conf.d/mysqld.cnf编辑该文件优化编码和核心参数# 编辑配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf在[mysqld]节点添加 / 修改如下配置# 服务端编码 character-set-server utf8mb4 # 排序规则 collation-server utf8mb4_unicode_ci # 默认存储引擎 default-storage-engine InnoDB # 端口 port 3306 # 允许远程访问注释掉bind-address默认绑定127.0.0.1仅本地可访问 # bind-address 127.0.0.1# 编辑客户端配置文件设置客户端编码 sudo vim /etc/mysql/conf.d/mysql.cnf在[mysql]节点添加default-character-set utf8mb4修改完成后重启 MySQL 服务sudo systemctl restart mysql验证编码配置是否生效-- 登录MySQL后执行 SHOW VARIABLES LIKE %character%; SHOW VARIABLES LIKE %collation%;若所有编码项均为utf8mb4说明配置成功utf8mb4是 UTF-8 的超集支持 emoji 和特殊中文。3.6 开启 Ubuntu MySQL 远程访问可选默认情况下 MySQL 仅允许本地访问若需要在其他机器上连接 Ubuntu 的 MySQL需完成配置文件修改 权限授权 防火墙开放三步前文已注释掉bind-address接下来授权远程访问并开放 3306 端口步骤 1授权 root 用户远程访问mysql -uroot -p-- 授权root用户从任意IP访问%表示任意IP可替换为具体IP如192.168.1.100 GRANT ALL PRIVILEGES ON *.* TO root% IDENTIFIED BY MySql123456 WITH GRANT OPTION; -- 刷新权限 FLUSH PRIVILEGES; exit;步骤 2开放 Ubuntu 防火墙 3306 端口Ubuntu 默认使用 ufw 防火墙开放 3306 端口TCP 协议MySQL 默认端口# 查看防火墙状态 sudo ufw status # 开放3306/TCP端口 sudo ufw allow 3306/tcp # 重启防火墙 sudo ufw reload完成后即可在本地通过 Navicat、DataGrip 等工具输入 Ubuntu 服务器 IP、3306 端口、root 账号密码连接 MySQL。总结MySQL 的环境配置是基础掌握不同系统的安装方法能快速适配各种开发环境。后续可以继续学习 MySQL 的用户管理、数据库设计、SQL 语句优化等内容打好后端开发的数据库基础。如果配置过程中遇到其他报错欢迎在评论区留言我会第一时间解答觉得这篇教程有用的话记得点赞 收藏哦