如何修复Ubuntu下配置phpMyAdmin时的No database selected错误?
问题本质
该报错(ERROR 1046 (3D000): No database selected)的核心成因是Ubuntu apt源内phpMyAdmin安装包的后置脚本存在执行顺序bug:未将目标操作数据库切换到phpMyAdmin专属库,就直接执行需要在指定库内运行的初始化建表语句,触发MySQL的执行校验直接中断安装流程。
修复操作步骤
- 清除当前残损的phpMyAdmin安装和配置,执行卸载命令:
sudo apt remove --purge phpmyadmin
卸载过程中弹出配置清除确认提示时,选择确认清除所有残留文件,避免旧的错误配置干扰后续安装。 - 登录MySQL数据库终端,手动完成phpMyAdmin依赖的库和权限初始化:
- 在终端执行登录命令进入MySQL交互界面:
sudo mysql -u root -p,输入root账号对应的数据库操作密码完成验证。 - 依次执行如下SQL语句,创建专属数据库、配置访问权限:
CREATE DATABASE IF NOT EXISTS phpmyadmin DEFAULT CHARACTER SET utf8 COLLATE utf8_bin; GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'phpmyadmin'@'localhost' IDENTIFIED BY '自定义的phpMyAdmin数据库访问密码'; FLUSH PRIVILEGES; - 所有SQL执行完成后,输入
exit退出MySQL交互环境。
- 在终端执行登录命令进入MySQL交互界面:
- 重新执行phpMyAdmin安装命令,在安装向导走到数据库配置提示环节时,跳过自动配置数据库的选项,手动输入
phpmyadmin作为目标操作数据库名,填写上一步设置的phpMyAdmin账号访问密码,走完剩余安装流程。 - 安装完成后手动导入phpMyAdmin的内置初始化表结构,执行命令:
zcat /usr/share/doc/phpmyadmin/create_tables.sql.gz | mysql -u root -p phpmyadmin
输入root数据库密码后即可完成全量初始化,该报错不会再触发。
内容的提问来源于stack exchange,提问作者ankur_kh1
相关产品推荐
相关产品推荐

