您好,登錄后才能下訂單哦!
這篇文章主要介紹“Ubuntu怎么配置phpMyAdmin管理MySQL”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Ubuntu怎么配置phpMyAdmin管理MySQL”文章能幫助大家解決問題。
這個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 就是個雞肋用戶,雞肋到什么程度呢?
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”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。