安装期间出现 phpmyadmin 错误 "Empty value for 'port' specified."
phpmyadmin error during installation "Empty value for 'port' specified."
我一直在尝试使用 ubuntu 14.04 / mysql 5.7.12 在我的 digitalocean droplet 上安装 phpmyadmin。我有一个 LAMP 堆栈,使用 apache 作为网络服务器。
在安装过程中,我不断收到此处显示的错误。
E
我是 phpmyadmin 的新手,想知道为什么我总是得到这个。以前使用旧版本 mysql 安装 phpmyadmin 是没有错误的。我正在尝试以非 root sudo 用户身份安装它。
任何方向或建议将不胜感激。
MySQL 此处的行为已更改,因此您几乎没有选择:
- 使用此更改之前的旧 MySQL 版本
- 使用 Ubuntu 包还原了此更改(参见 https://bugs.launchpad.net/ubuntu/+source/dbconfig-common/+bug/1563274)
- 等待修复 dbconfig-common,请参阅 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824537
更新:您可以按照 中所述解决此错误。
我们的服务器配置 - Debian 8.x
Mysql 5.7
PHP5+7
阿帕奇 2.4
这应该有效:
- unistall phpmyadmin (--purge)
- 重新安装 phpmyadmin(忽略错误)
- 使用 mysql 控制台或任何方式检查 mysql 中是否存在 phpmyadmin 用户 and/or 数据库。
如果它们不存在,请手动创建它们并授予 phpmyadmin 用户对 phpmyadmin 的所有权限 table。
手动编辑 /etc/dbconfig-common/phpmyadmin.conf 以反映您当前的 mysql 服务器设置
dbc_dbserver = 'your_server'
dbc_dbport = 'your_mysql_port'
and any dbc_ fields that you feel need completion at this time
- 手动编辑
/etc/phpmyadmin/config-db.php
以反映您当前的 mysql 服务器设置
$dbserver = same_as_above
$dbport = your_mysql_listening_port
etc. - any other fields that you feel needs completing.
运行 dpkg-reconfigure phpmyadmin
来自具有 root 或管理权限的控制台
选择为 phpmyadmin 重新安装数据库 - 是!!
当配置 window 询问您要对现有配置文件做什么时,选择 - "Keep the local version currently installed"。
在控制台输出中你不应该再有任何 mysql 空端口错误。
这对我有用。
我的机器配置
- Ubuntu 16.04
- MySql 5.7.13
- PHP 7.0.8
- 阿帕奇 2.4.18
编辑文件/etc/dbconfig-common/phpmyadmin.conf,更改
dbc_dbport=''
到 dbc_dbport='0'
编辑文件并保存后,如果您仍在 dbconfig-common 向导中 select 重试;如果不是 运行 sudo dpkg-reconfigure phpmyadmin
(当询问您是否要为 phpmyadmin 重新安装数据库时选择 是 )并正常继续而不更改任何值。如果您想更改某些值,请在您之前编辑的文件中进行。
当配置 window 询问您要对现有配置文件做什么时,选择 保持当前安装的本地版本。
此时您可以检查差异,只有您在文件中创建的差异必须存在。
None 以上对我的情况有所帮助 - 因为不知何故,mysql
不是 运行 / 未安装(通过 sudo systemctl status mysql
检查)。
- 跳过安装Phpmyadmin的错误
- 通过
sudo apt-get install mysql-server mysql-client
重新安装 mysql。
- 使用
sudo dpkg-reconfigure phpmyadmin
重新配置并接受默认值 - 这次它们会有些不同(但您可能需要设置密码)。
- 说是用维护者的版本覆盖配置文件。
顺便说一下,phpmyadmin.conf 中的端口仍然是 dbc_dbport=''
。
我在互联网上搜索了几个小时,但 none 对我有用,除了 this。
把dbc_dbport=''
改成dbc_dbport='0'
后还是遇到了一些问题
如果您无法正确继续配置过程,请执行以下附加步骤:
首先,只需选择中止。
然后使用您在安装 MariaDB 时定义的密码以 root 身份登录 mysql。
mysql -u root -p
接下来,发出以下命令:
CREATE DATABASE phpmyadmin;
然后,发出以下命令:
(不要忘记用您自己选择的密码替换 changethispassword。)
GRANT ALL ON phpmyadmin.* TO phpmyadmin@localhost IDENTIFIED BY 'changethispassword';
退出 mysql> 使用:
\q
接下来,编辑数据库配置:
sudo gedit /etc/phpmyadmin/config-db.php
使用您刚刚定义的密码编辑 dbpass 参数。
<?php
##
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
##
## by default this file is managed via ucf, so you shouldn't have to
## worry about manual changes being silently discarded. *however*,
## you'll probably also want to edit the configuration file mentioned
## above too.
##
$dbuser='phpmyadmin';
$dbpass='changethispassword';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='';
$dbtype='mysql';
将 changethispassword 替换为您自己的并保存。 (它一定已经正确设置了。)
我在为 'mysql' root 和 'mysql' 用户添加密码后解决了这个问题。如果你将两者中的一个或两个留空,你可以这样做:
sudo -i
检查:
whoami
如果 'root',键入:
mysql
,或 mysql -u root -p
,以防您已经有了 root 的密码。
mysql 终端打开;然后我添加了密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH my_sql_native_password BY 'newpassword';
And/or 如果需要,'user' 也是如此。然后,一旦我在 MySQL 和 phpMyAdmin 中为我的用户设置了相同的密码,我就完成了。
在添加密码之前,我应用了@William Ardilla 和@user5781956 的建议。也许只有@William Ardilla 的就足够了。
另一个解决方法,我正在更新 Ubuntu 14.04 -> 16.04:
- 在向导中 select "tcp/ip" 作为连接方式,localhost 端口 0
- 从 /etc/phpmyadmin/config-db 读取 phpmyadmin 用户密码。php
- 将db中的phpmyadmin用户密码改成
- 将其粘贴到向导中(两次)
向导将 运行 通过 :)
随着
我的机器配置 - Ubuntu 16.04 - MySql 5.7.13 - PHP 7.0.8 - Apache 2.4.18
编辑文件/etc/dbconfig-common/phpmyadmin.conf
,更改
dbc_dbport='' to dbc_dbport='0'
编辑文件并保存后,如果您仍在 dbconfig-common 向导中 select 重试;如果不是 运行 sudo dpkg-reconfigure phpmyadmin
(当询问您是否要为 phpmyadmin 重新安装数据库时选择是)并正常继续而不更改任何值。如果您想更改某些值,请在您之前编辑的文件中进行。
当配置 window 询问您要对现有配置文件执行的操作时,请选择保留当前安装的本地版本。
此时您可以检查差异,只有您在文件中创建的差异必须存在。
解决方案我还必须更改这一行:
"&& ($analyzed_sql_results['select_expr'][0] == '*')))" to "&& ($analyzed_sql_results['select_expr'][0] == '*'))"
之后一切正常!
我一直在尝试使用 ubuntu 14.04 / mysql 5.7.12 在我的 digitalocean droplet 上安装 phpmyadmin。我有一个 LAMP 堆栈,使用 apache 作为网络服务器。
在安装过程中,我不断收到此处显示的错误。
我是 phpmyadmin 的新手,想知道为什么我总是得到这个。以前使用旧版本 mysql 安装 phpmyadmin 是没有错误的。我正在尝试以非 root sudo 用户身份安装它。
任何方向或建议将不胜感激。
MySQL 此处的行为已更改,因此您几乎没有选择:
- 使用此更改之前的旧 MySQL 版本
- 使用 Ubuntu 包还原了此更改(参见 https://bugs.launchpad.net/ubuntu/+source/dbconfig-common/+bug/1563274)
- 等待修复 dbconfig-common,请参阅 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=824537
更新:您可以按照
我们的服务器配置 - Debian 8.x Mysql 5.7 PHP5+7 阿帕奇 2.4
这应该有效:
- unistall phpmyadmin (--purge)
- 重新安装 phpmyadmin(忽略错误)
- 使用 mysql 控制台或任何方式检查 mysql 中是否存在 phpmyadmin 用户 and/or 数据库。
如果它们不存在,请手动创建它们并授予 phpmyadmin 用户对 phpmyadmin 的所有权限 table。
手动编辑 /etc/dbconfig-common/phpmyadmin.conf 以反映您当前的 mysql 服务器设置
dbc_dbserver = 'your_server'
dbc_dbport = 'your_mysql_port'
and any dbc_ fields that you feel need completion at this time
- 手动编辑
/etc/phpmyadmin/config-db.php
以反映您当前的 mysql 服务器设置
$dbserver = same_as_above
$dbport = your_mysql_listening_port
etc. - any other fields that you feel needs completing.
运行
dpkg-reconfigure phpmyadmin
来自具有 root 或管理权限的控制台选择为 phpmyadmin 重新安装数据库 - 是!!
当配置 window 询问您要对现有配置文件做什么时,选择 - "Keep the local version currently installed"。
在控制台输出中你不应该再有任何 mysql 空端口错误。
这对我有用。
我的机器配置 - Ubuntu 16.04 - MySql 5.7.13 - PHP 7.0.8 - 阿帕奇 2.4.18
编辑文件/etc/dbconfig-common/phpmyadmin.conf,更改
dbc_dbport=''
到 dbc_dbport='0'
编辑文件并保存后,如果您仍在 dbconfig-common 向导中 select 重试;如果不是 运行 sudo dpkg-reconfigure phpmyadmin
(当询问您是否要为 phpmyadmin 重新安装数据库时选择 是 )并正常继续而不更改任何值。如果您想更改某些值,请在您之前编辑的文件中进行。
当配置 window 询问您要对现有配置文件做什么时,选择 保持当前安装的本地版本。
此时您可以检查差异,只有您在文件中创建的差异必须存在。
None 以上对我的情况有所帮助 - 因为不知何故,mysql
不是 运行 / 未安装(通过 sudo systemctl status mysql
检查)。
- 跳过安装Phpmyadmin的错误
- 通过
sudo apt-get install mysql-server mysql-client
重新安装 mysql。 - 使用
sudo dpkg-reconfigure phpmyadmin
重新配置并接受默认值 - 这次它们会有些不同(但您可能需要设置密码)。 - 说是用维护者的版本覆盖配置文件。
顺便说一下,phpmyadmin.conf 中的端口仍然是 dbc_dbport=''
。
我在互联网上搜索了几个小时,但 none 对我有用,除了 this。
把dbc_dbport=''
改成dbc_dbport='0'
后还是遇到了一些问题
如果您无法正确继续配置过程,请执行以下附加步骤:
首先,只需选择中止。
然后使用您在安装 MariaDB 时定义的密码以 root 身份登录 mysql。
mysql -u root -p
接下来,发出以下命令:
CREATE DATABASE phpmyadmin;
然后,发出以下命令: (不要忘记用您自己选择的密码替换 changethispassword。)
GRANT ALL ON phpmyadmin.* TO phpmyadmin@localhost IDENTIFIED BY 'changethispassword';
退出 mysql> 使用:
\q
接下来,编辑数据库配置:
sudo gedit /etc/phpmyadmin/config-db.php
使用您刚刚定义的密码编辑 dbpass 参数。
<?php
##
## database access settings in php format
## automatically generated from /etc/dbconfig-common/phpmyadmin.conf
## by /usr/sbin/dbconfig-generate-include
##
## by default this file is managed via ucf, so you shouldn't have to
## worry about manual changes being silently discarded. *however*,
## you'll probably also want to edit the configuration file mentioned
## above too.
##
$dbuser='phpmyadmin';
$dbpass='changethispassword';
$basepath='';
$dbname='phpmyadmin';
$dbserver='localhost';
$dbport='';
$dbtype='mysql';
将 changethispassword 替换为您自己的并保存。 (它一定已经正确设置了。)
我在为 'mysql' root 和 'mysql' 用户添加密码后解决了这个问题。如果你将两者中的一个或两个留空,你可以这样做:
sudo -i
检查:
whoami
如果 'root',键入:
mysql
,或 mysql -u root -p
,以防您已经有了 root 的密码。
mysql 终端打开;然后我添加了密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH my_sql_native_password BY 'newpassword';
And/or 如果需要,'user' 也是如此。然后,一旦我在 MySQL 和 phpMyAdmin 中为我的用户设置了相同的密码,我就完成了。
在添加密码之前,我应用了@William Ardilla 和@user5781956 的建议。也许只有@William Ardilla 的就足够了。
另一个解决方法,我正在更新 Ubuntu 14.04 -> 16.04:
- 在向导中 select "tcp/ip" 作为连接方式,localhost 端口 0
- 从 /etc/phpmyadmin/config-db 读取 phpmyadmin 用户密码。php
- 将db中的phpmyadmin用户密码改成
- 将其粘贴到向导中(两次)
向导将 运行 通过 :)
随着
我的机器配置 - Ubuntu 16.04 - MySql 5.7.13 - PHP 7.0.8 - Apache 2.4.18
编辑文件/etc/dbconfig-common/phpmyadmin.conf
,更改
dbc_dbport='' to dbc_dbport='0'
编辑文件并保存后,如果您仍在 dbconfig-common 向导中 select 重试;如果不是 运行 sudo dpkg-reconfigure phpmyadmin
(当询问您是否要为 phpmyadmin 重新安装数据库时选择是)并正常继续而不更改任何值。如果您想更改某些值,请在您之前编辑的文件中进行。
当配置 window 询问您要对现有配置文件执行的操作时,请选择保留当前安装的本地版本。
此时您可以检查差异,只有您在文件中创建的差异必须存在。
解决方案我还必须更改这一行:
"&& ($analyzed_sql_results['select_expr'][0] == '*')))" to "&& ($analyzed_sql_results['select_expr'][0] == '*'))"
之后一切正常!