要通过 Web 界面处理数据库,有一个 Web 编辑器 phpMyAdmin。 此工具连接到 MySQL/MariaDB 数据库并显示现有数据库,允许您创建新数据库、编辑表中的数据。 总的来说,一切都和在 mysql 控制台中可以完成的一样,但是更加方便和清晰,尤其是在经常处理数据的时候。 考虑安装 phpMyAdmin 预装 LAMP 的 Ubuntu 20.04.
我们从 root 用户进行所有设置,如果您使用的是普通用户,请在命令前添加 sudo.
1. 安装必要的组件和数据库编辑器本身
apt install php-mbstring
apt install phpmyadmin
在安装过程中,将提示用户选择应该为哪个 Web 服务器配置编辑器。
- [*]apache2
- []lighttpd
在我们的例子中,服务器预装了 LAMP,我们选择 apache2。
接下来,将建议为数据库编辑器本身创建一个数据库,其中将存储编辑器的用户设置和其操作所需的其他数据。 在这里我们选择 Yes 选项,在下一个窗口中将要求您提供 phpmyadmin 用户的密码。 我们输入密码,在接下来的窗口中确认,避免输入错误。
重新启动 Web 服务以应用我们的安装配置:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
2. 基本设置
让我们通过链接 http://server-ip/phpmyadmin 来检查工作,我们可以输入任何数据库的登录名和密码,例如,新创建的,我们设置的 phpmyadmin 登录名和密码。 有时,为了方便,需要同时操作多个数据库,为了在一个用户下显示它们,我们需要创建一个并委托root用户的权限。
mysql -u root -p
CREATE USER 'alldbuser'@'localhost' IDENTIFIED BY 'пароль';
GRANT ALL PRIVILEGES ON . TO 'alldbuser'@'localhost';
FLUSH PRIVILEGES;
现在,在 alldbuser 用户下授权时,将显示在该服务器上创建的所有数据库。
3. 安全设置
为了保护数据库编辑器免受猜测密码和潜在漏洞的影响,让我们在没有服务器的级别添加授权。
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
添加用户并为其指定密码:
htpasswd -c /etc/phpmyadmin/.htpasswd webdb-user
要在 Web 服务器级别应用设置,您需要更改 /etc/apache2/apache2.conf 文件中的全局设置,AllowOverride 值为 All,设置块应如下所示:
AllowOverride All
Require all granted
重新启动服务,具体取决于您的 Web 服务器:
/etc/init.d/apache2 restart
/etc/init.d/php7.4-fpm restart
现在,当您单击链接 http://server-ip/phpmyadmin 时,将出现一个窗口,用于输入您的登录名和密码。 在我们的例子中,登录名是 webdb-user。 您还可以添加一个配置,这样甚至不会提示来自未知 ip 地址的密码输入,并且用户会收到禁止消息,在文件中添加一行并指定您的静态 ip 地址:
nano /usr/share/phpmyadmin/.htaccess
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user
Allow from 77.88.99.11 22.33.44.55
设置完成,我们强烈建议您仅使用带有 SSL 证书的 https 协议输入密码,以避免数据拦截。