Ubuntu怎么配置phpMyAdmin管理MySQL

84次阅读
没有评论

共计 4359 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要介绍“Ubuntu 怎么配置 phpMyAdmin 管理 MySQL”的相关知识,丸趣 TV 小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu 怎么配置 phpMyAdmin 管理 MySQL”文章能帮助大家解决问题。

方法一 设置 root 密码,使用 root 密码登录并管理 phpMyAdmin。

这个 root 用户不是 Linux 系统的超级用户,而是 MySQL 数据库的超级用户。root 本来就拥有最大的权限,是 MySQL 数据库里的王者。只是 MySQL 5.7 在 Ubuntu 18.04 系统下默认使用的登录方式不是密码,而是 auth_socket.

让我们使用命令行登录 MySQL 验证一下:

daweibro@daweibro:~$ mysql -uroot -pEnter password:ERROR 1698 (28000): Access denied for user  root @ localhost $ sudo mysql -uroot[sudo] daweibro  的密码:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 117Server version: 5.7.26-0ubuntu0.18.04.1 (Ubuntu)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type  help;  or  \h  for help. Type  \c  to clear the current input statement.mysql  select user, host, plugin, password from mysql.user;ERROR 1054 (42S22): Unknown column  password  in  field list mysql  select user, host, plugin, authentication_string from mysql.user;+------------------+-----------+-----------------------+-------------------------------------------+| user | host | plugin | authentication_string |+------------------+-----------+-----------------------+-------------------------------------------+| root | localhost | auth_socket | || mysql.session | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || mysql.sys | localhost | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE || debian-sys-maint | localhost | mysql_native_password | *607A324EEBAC7D558C938DBD35F38848F0DFB578 || phpmyadmin | localhost | mysql_native_password | *1AA5B91306A02A619A29C477029B113DAADE6E7D |+------------------+-----------+-----------------------+-------------------------------------------+5 rows in set (0.01 sec)

通过命令行的交互,我们可以发现以下这几点:

MySQL 的 root 用户现在没法通过密码登录:Access denied for user root @ localhost

拥有 sudo 权限可以直接以 MySQL 的 root 用户登录,不用输入密码。

与旧版本不同的是,MySQL 5.7 的 mysql 数据库 user 表里,定义密码的不再是 password 字段(Unknown column password in field list),而变成了 authentication_string 字段。

以上两点出现的原因,在于 MySQL 5.7 默认定义了 root 用户的认证机制不是密码认证 mysql_native_password,而是 auth_socket。

那么,auth_socket 是个什么鬼?

The server-side auth_socket authentication plugin authenticates clients that connect from the local host through the Unix socket file. The plugin uses the SO_PEERCRED socket option to obtain information about the user running the client program. Thus, the plugin can be used only on systems that support the SO_PEERCRED option, such as Linux.

在 MySQL 5.7 里,如果 root 使用了 auth_socket 插件,那 MySQL 只检查用户是否使用 UNIX 套接字进行连接,然后比较用户名是否匹配,而不验证密码。如果要使用密码认证,需要修改认证插件为“mysql_native_password”并设置密码。使用下面的命令设置“NEWPASSWORD”:

mysql  ALTER USER  root @ localhost  IDENTIFIED WITH mysql_native_password BY  NEWPASSWORD

执行完成以后,MySQL 会自动重新连接,这时候退出再使用 mysql -uroot - p 登录,就可以使用刚才设置的密码进入 MySQL 了,并且 phpMyAdmin 也可以正常使用了。

方法二 给于 phpmyadmin 用户足够的数据库管理权限

安装 phpMyAdmin 的过程中创建的用户 phpmyadmin 就是个鸡肋用户,鸡肋到什么程度呢?

mysql  select * from mysql.user where user= phpmyadmin \G;ERROR 2006 (HY000): MySQL server has gone awayNo connection. Trying to reconnect...Connection id: 288Current database: phpmyadmin*************************** 1. row ***************************Host: localhostUser: phpmyadminSelect_priv: NInsert_priv: NUpdate_priv: NDelete_priv: NCreate_priv: NDrop_priv: NReload_priv: NShutdown_priv: NProcess_priv: NFile_priv: NGrant_priv: NReferences_priv: NIndex_priv: NAlter_priv: NShow_db_priv: NSuper_priv: NCreate_tmp_table_priv: NLock_tables_priv: NExecute_priv: NRepl_slave_priv: NRepl_client_priv: NCreate_view_priv: NShow_view_priv: NCreate_routine_priv: NAlter_routine_priv: NCreate_user_priv: NEvent_priv: NTrigger_priv: NCreate_tablespace_priv: Nssl_type:ssl_cipher:x509_issuer:x509_subject:max_questions: 0max_updates: 0max_connections: 0max_user_connections: 0plugin: mysql_native_passwordauthentication_string: *1AA5B91306A02A619A29C477029B113DAADE6E7Dpassword_expired: Npassword_last_changed: 2019-07-11 22:40:18password_lifetime: NULLaccount_locked: N1 row in set (0.03 sec)

不能创建新数据库新用户,完全没有管理 MySQL 数据库的权限。如果我们要使用这个用户做管理工作,还得给它足够的权限才行,最起码要能创建新的数据库,还要具有创建新用户并分配用户权限的能力。以下是操作方法:

mysql  GRANT ALL PRIVILEGES ON *.* TO  phpmyadmin @ localhost  WITH GRANT OPTION;Query OK, 0 rows affected (0.00 sec)mysql  flush privileges;Query OK, 0 rows affected (0.01 sec)

刷新权限以后,再以 phpmyadmin 的身份登录 phpMyAdmin,就发现权限一步登天,可以为所欲为了。

关于“Ubuntu 怎么配置 phpMyAdmin 管理 MySQL”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注丸趣 TV 行业资讯频道,丸趣 TV 小编每天都会为大家更新不同的知识点。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计4359字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)