首页 文章

安装过程中出现phpmyadmin错误“指定了'port'的空值” .

提问于
浏览
19

我一直在尝试使用ubuntu 14.04 / mysql 5.7.12在我的digitalocean droplet上安装phpmyadmin . 我有一个带有apache的LAMP堆栈作为Web服务器 .

在安装过程中,我不断收到此处显示的错误 .
error message
E.

我是phpmyadmin的新手,想知道为什么我一直这样 . 以前使用旧版本的mysql安装phpmyadmin是没有错误的 . 我试图将其安装为非root sudo用户 .

任何方向或建议将不胜感激 .

8 回答

  • 6

    我的机器配置 - Ubuntu 16.04 - MySql 5.7.13 - PHP 7.0.8 - Apache 2.4.18

    编辑文件/etc/dbconfig-common/phpmyadmin.conf,进行更改

    dbc_dbport=''dbc_dbport='0'

    编辑文件并保存后,如果仍在dbconfig-common向导中,请选择 retry ;如果没有运行 sudo dpkg-reconfigure phpmyadmin (当询问您是否要为phpmyadmin重新安装数据库时选择 Yes )并正常继续而不更改任何值 . 如果要更改某个值,请在之前编辑过的文件中进行更改 .

    当配置窗口询问您要对现有配置文件执行的操作时,请选择 Keep the local version currently installed .

    此时,您可以检查差异,并且只有您在文件中必须存在的差异 .

  • 5

    MySQL的行为在这里发生了变化,所以你几乎没有选择:

    更新:您可以按照answer from William Ardila中的说明解决此错误 .

  • 1

    我在互联网上搜索了好几个小时,但除了this之外没有人能为我工作 .

    dbc_dbport='' 更改为 dbc_dbport='0' 后,我仍遇到其他一些问题 .

    如果您无法正确继续配置过程,请执行以下附加步骤:

    首先,只需选择Abort .

    然后使用您在安装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 替换为您自己的并保存 . (它必须已经正确设置 . )

  • 0

    我们的服务器配置 - Debian 8.x Mysql 5.7 PHP 5 7 Apache 2.4

    这应该工作:

    unistall phpmyadmin(--purge)重新安装phpmyadmin(忽略错误)使用mysql控制台或任何方法检查mysql中是否存在phpmyadmin用户和/或数据库 . 如果它们不存在,请在phpmyadmin表上手动创建它们并使GRANT phpmyadmin用户拥有所有权限 .

    手动编辑/etc/dbconfig-common/phpmyadmin.conf以反映当前的服务器设置(您的mysql设置 - dbc_dbserver ='your_server'dbc_dbport ='your_mysql_port'以及您认为此时需要完成的任何dbc_字段)

    手动编辑/etc/phpmyadmin/config-db.php,以反映当前的服务器设置(您的mysql设置$ dbserver = same_as_above $ dbport = your_mysql_listening_port等 - 您认为需要完成的任何其他字段 .

    使用root或管理权限从控制台运行dpkg-reconfigure phpmyadmin

    选择为phpmyadmin重新安装数据库 - 是的!当配置窗口询问您要对现有配置文件执行的操作时,请选择 - “保留当前安装的本地版本” .

    在控制台输出中,您不应再有任何mysql空端口错误 . 这对我有用 .

  • 0

    以上都没有帮助我的情况 - 因为,不知何故, mysql 没有运行/没有安装(检查 sudo systemctl status mysql ) .

    • 在Phpmyadmin安装中跳过错误 .

    • 通过 sudo apt-get install mysql-server mysql-client 重新安装mysql .

    • 使用 sudo dpkg-reconfigure phpmyadmin 重新配置并接受默认值 - 这次它们会有所不同(但您可能需要设置密码) .

    • 说是用维护者的版本覆盖配置文件 .

    顺便说一句,phpmyadmin.conf中的端口仍然是 dbc_dbport='' .

  • 48

    我在向'mysql'root和'mysql'用户添加密码后解决了这个问题 . 如果您将两者中的一个或两个留空,您可以执行以下操作:

    sudo -i

    校验:

    whoami

    如果是“root”,请键入:

    mysql ,或 mysql -u root -p ,以防您已拥有root用户密码 .

    mysql终端打开;然后我添加了密码:

    mysql> ALTER USER'root'@'localhost'用my_sql_native_password识别BY'newpassword';

    和/或“用户”相同,如果需要的话 . 然后,一旦我在MySQL和phpMyAdmin中为我的用户创建了相同的密码,我就完成了 .

    在添加密码之前,我应用了@William Ardilla以及@ user5781956的建议 . 也许只有@William Ardilla就足够了 .

  • 0

    另一个解决方法,我正在更新Ubuntu 14.04 - > 16.04:

    • 在向导中选择"tcp/ip"作为连接方法,localhost端口0

    • 从/etc/phpmyadmin/config-db.php中读取phpmyadmin用户密码

    • 将db中的phpmyadmin用户密码更改为它

    • 将其粘贴到向导中(两次)

    向导将贯穿:)

  • 3

    随着


    我的机器配置 - 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向导上,请选择重试;如果没有运行 sudo dpkg-reconfigure phpmyadmin (当询问您是否要为phpmyadmin重新安装数据库时选择是)并正常继续而不更改任何值 . 如果要更改某个值,请在之前编辑过的文件中进行更改 .

    当配置窗口询问您要对现有配置文件执行的操作时,请选择“保留当前安装的本地版本” .

    此时,您可以检查差异,并且只有您在文件中必须存在的差异 .


    解决方案我也不得不改变这一行:

    "&& ($analyzed_sql_results['select_expr'][0] == '*')))" to "&& ($analyzed_sql_results['select_expr'][0] == '*'))"
    

    之后一切正常!

相关问题