温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Ubuntu怎么配置phpMyAdmin管理MySQL

发布时间:2022-11-19 10:42:16 来源:亿速云 阅读:145 作者:iii 栏目:服务器

这篇文章主要介绍“Ubuntu怎么配置phpMyAdmin管理MySQL”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“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)

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

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

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

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

  4. 以上两点出现的原因,在于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”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI