在开发机上使用 phpMyAdmin 可视化管理 MySQL 数据库
AIStudio 开发机属于容器环境,不同于物理机。本文将描述如何在开发机中安装 MySQL,并使用 phpMyAdmin 进行连接和管理数据库。
NOTE
phpMyAdmin 是一款广泛使用的基于 Web 的 MySQL 和 MariaDB 数据库管理工具,它提供了一个简洁易用的图形化界面,用户可以通过浏览器进行数据库操作。
创建实验环境
进入创建页面后,请根据页面提示,完成开发机的相应配置。在选择配置镜像时,请选择预置镜像中的 ubuntu:22.04。建议开启 SSH 密码登录。
点击下方链接,直接访问智算云控制台的创建开发机页面。
安装与启动 MySQL
我们安装使用的是 MySQL8.0。
更新系统软件包。
shellapt update
安装 mysql-server 软件包。
shellapt install mysql-server
shell# 查看版本 mysql --version
启动 MySQL。
shell/usr/bin/mysqld_safe &
IMPORTANT
- 由于 AIStudio 的开发机属于容器化开发环境,不支持 systemd,因此无法使用依赖于 systemd 的 systemctl 或 service 命令。
- 建议在安装 phpMyAdmin 前启动 MySQL,否则 phpMyAdmin 会提示无法检测到 MySQL。
安装 phpMyAdmin
在安装前请确保已启用 MySQL 服务。
apt install phpmyadmin
安装时,请根据终端提示进行安装。请记忆所输入的密码,同时在选择 web server 时请选择「1. apache2」。
The phomyadmin package must have a database installed and configured before it can be used. This can be optionally handled with dbconfig-common.
If You are advanced database administrator and know that you want to perform this configuration manually, or if your database has already been installed and configured, you should refuse this option. Details on what needs to be done should most likely be provided in /usr/share/doc/phpmyadmin.
Otherwise, you should probably choose this option.
Configure database for phpmyadmin with bconfig-common?_(yes/no)_yes
Please provide a password for phpmyadmin to register with the database server. If left blank, a random password will be generated.
MysQL application password for_phpmyadmin:
Password confirmation:
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Please choose the web server that should be automatically configured to run phpMyAdmin.
1. apache2 2. lighttpd
(Enter the atems or ranges you want to select, separated by spaces.)
Web server to reconfigure automatically: 1
安装与启动 Apache
安装 Apache。
shellapt install apache2
根据 Unbuntu 官方文档,需安装 mod_php,允许 Apache 解析 php 文件,使得 phpMyAdmin 登录页面正常显示。
shellapt install libapache2-mod-php8.1
启用 Apache 配置文件,激活 phpMyAdmin。
shella2enconf phpmyadmin
启动 Apache。
shellapachectl start
验证 Apache 已正常启动。
shell# 查询 apache 状态及监听端口,默认80 netstat -tulpn | grep apache2 # 或 ss -tulpn | grep apache2
IMPORTANT
由于 AIStudio 的开发机属于容器化开发环境,不支持 systemd,因此无法使用依赖于 systemd 的 systemctl 或 service 命令。
使用 phpMyAdmin 访问 MySQL
配置 phpMyAdmin
配置 phpMyAdmin,允许通过任意 IP 地址远程访问 MySQL 服务器。
echo "\$cfg['Servers'][\$i]['host'] = '0.0.0.0';" | tee -a /etc/phpmyadmin/config.inc.php
NOTE
若缺失配置或配置失败,phpMyAdmin 登录页面会报错: mysqli::real_connect(): (HY000/2002): Permission denied
。详见 phpMyAdmin Configuration。
创建 phpMyAdmin 专用账号
安装 phpMyAdmin 时创建的是 root 用户,创建新的 phpMyAdmin 的登录账户便于便于提升安全性和管理灵活性。
登录 MySQL。登录后,接下来的操作是在 MySQL 命令行中进行的。
shellmysql -u root
创建 phpMyAdmin 新用户
sqlCREATE USER 'your_new_name'@'%' IDENTIFIED BY 'your_password';
TIP
请将 your_new_name 和 your_password 替换成所需要的登录用户名和密码。
授予权限
sqlGRANT ALL PRIVILEGES ON *.* TO 'your_new_name'@'%';
TIP
请将 your_new_name 替换成上面所输入的登录用户名。
刷新权限
sqlFLUSH PRIVILEGES;
退出
sqlexit
设置本地端口转发
为了在本地的浏览器中打开 phpMyAdmin,请在本地计算机命令行终端设置端口转发。
格式
ssh -N -f -L 8080:127.0.0.1:80 -p <开发机 SSH 端口> root@<开发机 SSH IP>
示例,请务必替换为您的开发机对应配置。
ssh -N -f -L 8080:127.0.0.1:80 -p 43282 root@36.213.48.208
NOTE
详见 SSH 端口转发。
登录 phpMyAdmin
- 在本地计算机访问
http://localhost:8080/phpmyadmin
,进入登录页面。 - 输入用户名和密码,并选择 0.0.0.0 服务器。
- 点击“执行”即可登录。