无论是对于希望搭建本地开发环境的开发者,还是需要部署生产数据库的数据库管理员,本文将提供一份详尽且操作性强的指南
通过遵循以下步骤,你将能够顺利在Ubuntu18.04系统上安装并配置MySQL
一、准备工作 在开始安装之前,请确保你的Ubuntu18.04系统已经更新到最新版本
这有助于避免在安装过程中遇到因系统过旧而导致的兼容性问题
同时,请确保你有一个具有sudo权限的用户账户,以便执行必要的安装和配置命令
1.更新系统软件包索引: bash sudo apt update 二、安装MySQL Ubuntu18.04的APT软件包存储库中默认包含最新版本的MySQL
在撰写本文时(2025年),默认安装的MySQL版本可能已有更新,但安装步骤保持不变
1.安装MySQL服务器软件包: bash sudo apt install mysql-server 系统将提示你确认安装
输入“Y”并按回车键继续
安装过程可能需要一些时间,具体取决于你的网络连接速度和系统性能
2.验证安装: 安装完成后,你可以通过检查MySQL服务的状态来验证安装是否成功
运行以下命令: bash sudo systemctl status mysql 如果MySQL服务正在运行,你将看到类似“active(running)”的状态信息
三、启动MySQL服务 在安装MySQL后,服务通常会自动启动
但如果你发现服务没有启动,可以使用以下命令手动启动: bash sudo systemctl start mysql 你还可以使用以下命令停止和重启MySQL服务: bash sudo systemctl stop mysql停止MySQL服务 sudo systemctl restart mysql重启MySQL服务 四、运行安全脚本 安装MySQL后,强烈建议你运行附带的安全脚本来配置一些安全选项
这将帮助你提高数据库的安全性
1.运行安全脚本: bash sudo mysql_secure_installation 该脚本将引导你通过一系列提示,你可以在其中对MySQL安装的安全选项进行一些更改
以下是你可能会遇到的一些提示及其含义: -验证密码插件:该插件可用于测试MySQL密码的强度
你可以选择启用或禁用它
-设置root密码:系统将提示你为MySQL root用户设置密码
请确保选择一个强密码,以保护你的数据库安全
-删除匿名用户:匿名用户允许任何人无需创建用户账户即可登录MySQL
这通常仅用于测试环境
在生产环境中,你应该删除这些用户
-禁止远程root登录:默认情况下,root用户只能从本地主机登录
你可以选择是否允许root用户从远程主机登录
出于安全考虑,通常不建议允许远程root登录
-删除测试数据库:MySQL默认包含一个名为“test”的数据库,任何人都可以访问
这个数据库也通常仅用于测试环境
在生产环境中,你应该删除这个数据库并取消对它的访问权限
-刷新授权表:最后,系统将提示你刷新授权表,以使所有更改立即生效
五、配置MySQL允许远程访问 如果你需要远程访问MySQL数据库,例如从Windows系统使用Navicat图形化工具进行连接,你需要进行一些额外的配置
1.编辑MySQL配置文件: 使用文本编辑器打开MySQL的配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`,并找到`bind-address`行
将其注释掉或更改为`0.0.0.0`以允许所有IP地址连接
但出于安全考虑,通常建议仅允许特定IP地址连接
bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 找到类似以下行: plaintext bind-address =127.0.0.1 将其注释掉: plaintext bind-address =127.0.0.1 或者更改为: plaintext bind-address =0.0.0.0 2.重启MySQL服务: 修改配置文件后,需要重启MySQL服务以使更改生效
bash sudo systemctl restart mysql 3.授权远程访问: 登录MySQL数据库,并为远程用户授予访问权限
bash mysql -u root -p 在MySQL提示符下,运行以下命令: sql GRANT ALL ON- . TO root@% IDENTIFIED BY 你的密码 WITH GRANT OPTION; FLUSH PRIVILEGES; EXIT; 这将允许root用户从任何IP地址使用指定的密码进行连接
请注意,出于安全考虑,通常不建议在生产环境中使用root用户进行远程连接
相反,你应该创建一个具有适当权限的专用用户账户
六、更改MySQL数据目录(可选) 默认情况下,MySQL的数据目录位于`/var/lib/mysql`
如果你需要更改数据目录(例如,出于性能考虑或磁盘空间的需要),可以按照以下步骤进行操作
1.停止MySQL服务: bash sudo systemctl stop mysql 2.创建新数据目录并复制原始数据: 假设你要将数据目录更改为`/mnt/mysql-data`,首先创建新目录并复制原始数据
bash sudo mkdir /mnt/mysql-data sudo cp -R /var/lib/mysql/ /mnt/mysql-data/ 3.设置新目录的权限: bash sudo chown -R mysql:mysql /mnt/mysql-data 4.修改MySQL配置文件: 编辑MySQL的配置文件`/etc/mysql/mysql.conf.d/mysqld.cnf`,找到`datadir`行并将其修改为新的数据目录
bash sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 将以下内容: plaintext datadir = /var/lib/mysql 修改为: plaintext datadir = /mnt/mysql-data 5.(如果启用了AppArmor)更新AppArmor配置文件: 打开文件`/etc/apparmor.d/usr.sbin.mysqld`并添加新目录
bash sudo nano /etc/apparmor.d/usr.sbin.mysqld 将以下内容添加至文件末尾: plaintext /mnt/mysql-data/ r, /mnt/mysql-data/ rwk, 然