MySQL是最流行的开源关系数据库管理系统。它快速,易于使用,可扩展,是流行的LAMP
和LEMP
堆栈的组成部分。
在本教程中,我们将向您展示如何在Ubuntu 18.04计算机上安装和保护MySQL。请确保您以root或者具有sudo权限的用户登录。
在撰写本文时,可从Ubuntu官方存储库获得的MySQL的最新版本是MySQL版本 5.7。要在Ubuntu服务器上安装MySQL,请执行以下步骤。
首先,更新apt包索引,运行命令sudo apt update
。然后安装MySQL运行命令sudo apt install mysql-server
。
安装完成后,MySQL将作为systemd服务自动启动,您可以通过运行命令sudo systemctl status mysql
查看mysql服务的状态。
sudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2018-06-20 11:30:23 PDT; 5min ago
Main PID: 17382 (mysqld)
Tasks: 27 (limit: 2321)
CGroup: /system.slice/mysql.service
`-17382 /usr/sbin/mysqld --daemonize --pid-file=/run/mysqld/mysqld.pid
配置MySQL
当MySQL安装完成后,你可能会想运行命令mysql -u root -p
登录到MySQL服务器。
如果你登录到Ubuntu的用户不是root用户你将不能访问MySQL服务器。如果你尝试使用密码登录也将被拒绝连接,MySQL root用户默认是没有密码。
你将会收到类似于这样的消息(28000): Access denied for user 'root'@'localhost' (using password: YES)或者ERROR 1045 (28000): Access denied for user 'root'@'localhost'。
这是因为在MySQL 8.0上,对root用户使用auth_socket
插件进行身份验证。auth_socket
插件仅对从localhost
连接到Unix socket文件用户进行身份验证。
这意味着您无法通过提供密码来以root用户连接到MySQL服务器。但你可以通过命令sudo mysql
连接到MySQL服务器。
sudo mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
mysql>
如果您要使用外部程序,例如phpMyAdmin。以root用户连接到MySQL服务器,则有两个选择。
第一个是将身份验证方法从auth_socket
更改为mysql_native_password
。您可以通过运行ALTER USER SQL语句命令来做到这一点。
第二个选项是创建一个新的专用管理用户,该用户可以访问所有数据库。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
如果你需要配置MySQL用户的远程访问,可参考我们的教程如何允许MySQL数据库服务器的远程连接。
结论
在本教程中,您学习了如何在Debian 10服务器安装和配置MySQL服务器。我们还向您展示了如何连接到MySQL 服务器。