在linux环境中搭建mysql数据库是服务端开发、项目部署的常见需求,整个流程可以分为环境检查、安装包处理、服务初始化、配置优化、权限设置几个核心环节,按照步骤操作即可完成搭建。

一、环境准备与依赖检查
首先确认当前linux系统的版本,不同版本的包管理工具存在差异,主流的centos和ubuntu系统操作略有不同。同时检查系统是否已经安装过mysql或者mariadb,避免端口冲突或者文件残留。
如果是centos系统,可以先执行以下命令检查已有数据库相关包:
# 检查已安装的mysql相关包 rpm -qa | grep mysql # 检查已安装的mariadb相关包 rpm -qa | grep mariadb # 如果存在旧包,执行卸载命令,示例卸载mariadb yum remove mariadb-libs -y
如果是ubuntu系统,使用dpkg命令检查:
# 检查已安装的mysql相关包 dpkg -l | grep mysql # 卸载旧包 apt-get remove mysql* -y apt-get autoremove -y
二、获取mysql安装包
可以选择使用系统自带的包管理工具直接安装,也可以下载官方安装包手动安装。使用包管理工具安装更简单,适合新手操作。
1. centos系统使用yum安装
先添加mysql官方yum源,然后直接安装:
# 下载mysql yum源安装包,这里以mysql8.0为例 wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm # 安装yum源 rpm -ivh mysql80-community-release-el7-5.noarch.rpm # 安装mysql服务 yum install mysql-community-server -y
2. ubuntu系统使用apt安装
更新apt源后直接安装:
# 更新apt源 apt-get update # 安装mysql服务 apt-get install mysql-server -y
三、服务初始化与启动
安装完成后需要先初始化mysql的数据目录,然后启动服务,不同版本初始化方式略有差异。
mysql5.7及以上版本初始化命令如下:
# 初始化数据目录,--initialize会生成临时root密码,--initialize-insecure则无密码 mysqld --initialize --user=mysql --datadir=/var/lib/mysql # 启动mysql服务,centos系统 systemctl start mysqld # 设置开机自启 systemctl enable mysqld # ubuntu系统启动命令 systemctl start mysql systemctl enable mysql
初始化完成后如果是使用--initialize参数,临时root密码会保存在日志文件中,可以通过以下命令查看:
# centos查看临时密码 grep 'temporary password' /var/log/mysqld.log
四、基础配置与安全设置
服务启动后需要先登录mysql,然后修改root密码,同时做基础的安全配置。
登录mysql命令:
# 输入上面获取的临时密码登录 mysql -u root -p
登录后首先修改root密码,mysql8.0版本修改密码命令如下:
-- 修改root密码,密码需要包含大小写字母、数字、特殊字符 ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass@123'; -- 刷新权限 FLUSH PRIVILEGES;
可以运行mysql自带的安全配置脚本,按照提示设置密码强度、移除匿名用户、禁止root远程登录等:
mysql_secure_installation
五、开启远程访问(可选)
如果需要从其他机器远程连接mysql,需要修改root用户的host权限,同时开放防火墙对应端口。
首先登录mysql修改用户权限:
-- 切换到mysql系统库 USE mysql; -- 修改root用户的host为%,允许所有IP访问,也可以指定具体IP UPDATE user SET host='%' WHERE user='root' AND host='localhost'; -- 刷新权限 FLUSH PRIVILEGES;
然后开放防火墙3306端口,centos系统操作如下:
# 开放3306端口 firewall-cmd --zone=public --add-port=3306/tcp --permanent # 重新加载防火墙规则 firewall-cmd --reload
ubuntu系统使用ufw开放端口:
ufw allow 3306/tcp ufw reload
六、验证安装结果
完成以上步骤后,可以验证mysql是否正常运行,本地登录测试:
# 使用新密码登录 mysql -u root -p # 查看mysql版本 SELECT VERSION();
如果可以正常登录并查看到版本信息,说明mysql在linux环境搭建完成,可以正常使用了。