在Ubuntu系统中安装MySQL数据库是一个常见的需求,无论是用于开发环境还是生产环境,正确的安装步骤和配置都能确保数据库的稳定运行,以下是详细的安装命令及操作流程,涵盖从环境准备到安全配置的全过程。

环境准备
在安装MySQL之前,建议先更新系统的软件包列表,确保所有依赖项都是最新的,打开终端,执行以下命令:
sudo apt update sudo apt upgrade -y
检查系统是否已安装MySQL,可以通过以下命令:
mysql --version
如果已安装,建议先卸载旧版本以避免冲突:
sudo apt remove --purge mysql* -y sudo apt autoremove -y sudo apt autoclean -y
安装MySQL服务器
Ubuntu的官方软件源中提供了MySQL的安装包,推荐使用apt
工具进行安装,执行以下命令:

sudo apt install mysql-server -y
安装过程中,系统会提示配置root密码,建议设置一个强密码并妥善保存,安装完成后,启动MySQL服务并设置为开机自启:
sudo systemctl start mysql sudo systemctl enable mysql
验证服务状态:
sudo systemctl status mysql
如果显示active (running)
,则表示安装成功。
安全配置
MySQL安装后,运行安全配置脚本可以增强安全性,包括设置root密码、移除匿名用户、禁止远程root登录等,执行以下命令:

sudo mysql_secure_installation
脚本会分步引导完成以下操作:
- 验证root密码:输入之前设置的root密码。
- 设置密码策略:选择密码验证强度(0-LOW, 1-MEDIUM, 2-STRONG)。
- 移除匿名用户:建议选择
Y
。 - 禁止root远程登录:根据需求选择,生产环境建议选择
Y
。 - 移除测试数据库:建议选择
Y
。 - 重新加载权限表:选择
Y
使配置生效。
配置MySQL字符集
为避免中文乱码问题,需修改MySQL的字符集配置,编辑my.cnf
文件:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]
部分添加以下内容:
[mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci
保存文件后,重启MySQL服务:
sudo systemctl restart mysql
验证字符集设置:
mysql -u root -p -e "SHOW VARIABLES LIKE 'character_set_server';"
创建数据库和用户
登录MySQL:
sudo mysql -u root -p
执行以下SQL命令创建数据库和用户(示例数据库名为mydb
,用户名为myuser
):
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON mydb.* TO 'myuser'@'localhost'; FLUSH PRIVILEGES; EXIT;
常用管理命令
以下是MySQL的常用管理命令,方便日常操作:
| 功能 | 命令 |
|------------------------|------------------------------------------|
| 登录MySQL | mysql -u 用户名 -p
|
| 退出MySQL | EXIT;
或 Ctrl+D
|
| 查看所有数据库 | SHOW DATABASES;
|
| 选择数据库 | USE 数据库名;
|
| 查看表 | SHOW TABLES;
|
| 备份数据库 | mysqldump -u 用户名 -p 数据库名 > 备份文件.sql
|
| 恢复数据库 | mysql -u 用户名 -p 数据库名 < 备份文件.sql
|
故障排查
如果遇到MySQL无法启动或连接问题,可通过以下方式排查:
- 查看错误日志:
sudo tail -f /var/log/mysql/error.log
- 检查端口占用:
sudo netstat -tuln | grep 3306
- 重置root密码(若忘记密码):
- 停止MySQL服务:
sudo systemctl stop mysql
- 跳过权限表启动:
sudo mysqld_safe --skip-grant-tables &
- 无密码登录并重置密码:
UPDATE mysql.user SET authentication_string=PASSWORD('新密码') WHERE User='root'; FLUSH PRIVILEGES; EXIT;
- 重启MySQL服务:
sudo systemctl restart mysql
- 停止MySQL服务:
相关问答FAQs
问题1:如何卸载MySQL并清理残留文件?
解答:执行以下命令完全卸载MySQL:
sudo systemctl stop mysql sudo apt remove --purge mysql-server mysql-client mysql-common -y sudo apt autoremove -y sudo apt autoclean -y sudo rm -rf /var/lib/mysql /etc/mysql sudo deluser mysql
问题2:如何允许远程连接MySQL数据库?
解答:首先编辑MySQL配置文件,注释掉bind-address = 127.0.0.1
:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
然后创建允许远程连接的用户并授权:
CREATE USER 'remote_user'@'%' IDENTIFIED BY '远程密码'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
最后重启MySQL服务,并确保防火墙开放3306端口:
sudo ufw allow 3306/tcp sudo systemctl restart mysql